面試題 08.11. 硬幣
class Solution {
private final int[] coins = {1,5,10,25};
private final int mod = 1000000007;
public int waysToChange(int n) {
int[] dp = new int[n+1];
dp[0] = 1;
for(int coin:coins){
for(int i = coin;i<=n;i++){
dp[i] = (dp[i] + dp[i-coin])%mod;
}
}
return dp[n];
}
}
面試題04. 二維數組中的查找
//暴力
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
if(matrix==null ||matrix.length==0){
return false;
}
int m = matrix.length,n = matrix[0].length;
for(int i = 0;i<m;i++){
for(int j = 0;j<n;j++){
if(matrix[i][j]==target){
return true;
}
}
}
return false;
}
}
//從左下角開始遍歷
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
int i= matrix.length-1,j = 0;
while(i>=0&&j<matrix[0].length){
if(matrix[i][j]>target) i--;
else if(matrix[i][j]<target) j++;
else return true;
}
return false;
}
}
//從右上角開始遍歷
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
if(matrix == null || matrix.length == 0) {
return false;
}
int i= 0,j = matrix[0].length-1;
while(i < matrix.length && j >= 0){
if(matrix[i][j]>target) j--;
else if(matrix[i][j]<target) i++;
else return true;
}
return false;
}
}
你知道的越多,你不知道的越多。
有道無術,術尚可求,有術無道,止於術。
如有其它問題,歡迎大家留言,我們一起討論,一起學習,一起進步