935. 骑士拨号器

935. 骑士拨号器

  • 原题链接:
  • 完成情况:
  • 解题思路:
  • 参考代码:

原题链接:

935. 骑士拨号器

https://leetcode.cn/problems/knight-dialer/description/

完成情况:

935. 骑士拨号器_第1张图片

解题思路:

935. 骑士拨号器_第2张图片

参考代码:

package LeetCode中等题;

import java.util.Arrays;

public class __935骑士拨号器__动态规划下的L型走法 {
    /**
     *
     * @param n
     * @return
     */
    public int knightDialer(int n) {
        int mod = 1000000007;
        int [][] moves = new int[][]{
            {4,6},{6,8},{7,9},{4,8},{3,9,0},
            {},{1,7,0},{2,6},{1,3},{2,4}};
        int dp_knightDialer [][] = new int[2][10];
        Arrays.fill(dp_knightDialer[0],1);
        for (int hopes = 0;hopes < n-1;hopes++){
            Arrays.fill(dp_knightDialer[~hopes & 1],0);
            for (int node = 0;node < 10;node++){
                for (int nei:moves[node]){
                    dp_knightDialer[~hopes & 1][nei] += dp_knightDialer[hopes & 1][node];
                    dp_knightDialer[~hopes & 1][nei] %= mod;
                }
            }
        }
        long res = 0;
        for (int x:dp_knightDialer[~n & 1]){
            res += x;
        }
        return (int)(res % mod);
    }
}

你可能感兴趣的:(#,LeetCode题解,算法知识,java学习,算法,leetcode,java)