剑指 Offer 15. 二进制中1的个数
package 牛客网名企面试笔试问题2021;
/**
* @Classname 整数的1的个数
* @Description TODO
* @Date 2021/2/26 11:06
* @Created by xjl
*/
public class 整数的1的个数 {
public int hammingWeight(int n) {
int res = 0;
while (n != 0) {
res += n & 1;
n >>>= 1;
}
return res;
}
}
换的钱币是最少的一个的方案
package 牛客网名企面试笔试问题2021;
import java.util.Arrays;
/**
* @Classname 换钱币最少数量
* @Description TODO
* @Date 2021/2/26 12:55
* @Created by xjl
*/
public class 换钱币最少数量 {
/**
* @description TODO 给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。
* @param: arr
* @param: aim
* @date: 2021/2/26 12:56
* @return: int
* @author: xjl
*
* 嘉定的给定的钱币为i 那么他的换币方案是的有两个方案组成: i 表示的是的钱 ——————1是没有办法兑换货币 dp[i]=dp[i] 2 可是换 dp[i]=dp[i-arr[i]]+1
*/
public int minMoney(int[] arr, int aim) {
int len = arr.length;
int[] dp = new int[aim + 1];
Arrays.fill(dp, Integer.MAX_VALUE - 1);
dp[0] = 0;
//遍历的是全部的钱
for (int i = 1; i = 0) {
dp[i] = Math.min(dp[i - coin] + 1, dp[i]);
}
}
}
return dp[aim] == Integer.MAX_VALUE - 1 ? -1 : dp[aim];
}
public int minMoney2(int[] arr, int aim) {
int len = arr.length;
int[] dp = new int[aim + 1];
Arrays.fill(dp, Integer.MAX_VALUE - 1);
//表示的可以换的钱的张数量
dp[0] = 0;
//遍历的是全部的钱可能出现的钱
for (int i = 1; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?