力扣---2020.4.23

面試題 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;
    }
}

你知道的越多,你不知道的越多。
有道無術,術尚可求,有術無道,止於術。
如有其它問題,歡迎大家留言,我們一起討論,一起學習,一起進步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章