2018-07-24

2018-07-24  本文已影响0人  一棵准备远行的树

因为宿舍网络无法打开GitHub,暂存代码于此,之后会转移去GitHub。
第一题:

public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
    if (n==0)return 0;
    
    int result=0;
    for(int i=0;i<32;i++){
        result<<=1;
        result+=n&1;
        n>>=1;
    }
    return result;
}
}

第二题:

class Solution {
public int[] countBits(int num) {
    int[] a=new int [num+1];
    a[0]=0;
    if(num==0) return a;
    for(int i=0;i<=num;i++){
        int result=0;
        int p=i;
        for(int j=0;j<32;j++){
            if((p&1)==1){
                result++;
            }
            p>>=1;
        }
        a[i]=result;
        
    }
    return a;
}
}

第三题:
参考的背包问题

class Solution {
public int findTargetSumWays(int[] nums, int S) {
    int sum=0;
    int n=0;
    for(int num:nums){
        sum=sum+num;
        n++;
    }
    if(sum<S||n==0){
        return 0;
    }
    int dif=sum-S;
    int[] a=new int[dif+1];
    a[0]=1;
    for (int i = 0; i < nums.length; i ++) {
        for (int d = dif; d >= nums[i] * 2; d --) {
            a[d] += a[d-nums[i]*2];
        }
    
    }
    return a[dif];
}
}
上一篇下一篇

猜你喜欢

热点阅读