給定乙個陣列arr,和乙個整數aim,如果可以任意選擇arr中的數字,判斷能不能累加得到aim,
參考了遞迴版本:
public static issum(int arr,int i,int sum,int aim)
return issum(arr,i+1,sum,aim)||issum(arr,i+1,sum+arr[i],aim);
}
動態規劃版本:
public static boolean issum2(int arr,int aim)
boolean dp=new boolean[arr.length+1][aim+1];
//填最後一行
for(int i = arr.length, sum = 0; sum <= aim; sum++)else
}for(int i=arr.length-1;i>=0;i--)}}
//因為這是從下往上填dp表,所以最後得到的是dp[0][0]
return dp[0][0];
}
劍指offer之陣列中重複的數
在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。public class solution a numbers i ...
(Java)劍指offer之陣列中重複的數
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。引數說明 numbers 輸入的整數陣列 length 陣...
劍指offer 陣列中重複的數
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。開始我考慮的是,先將陣列排序,然後逐個比較,如果有相等的,...