Advertisement
nikunjsoni

935

Jun 13th, 2021
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int knightDialer(int n) {
  4.         int mod=1000000007;
  5.         if(n==1)return 10;
  6.         vector<long long int>v(10,1);
  7.         vector<long long int>tmp(10);
  8.         v[5]=0;
  9.         for(int i=1;i<n;i++)
  10.         {
  11.             tmp[0]=(v[4]+v[6])%mod;
  12.             tmp[1]=(v[6]+v[8])%mod;
  13.             tmp[2]=(v[7]+v[9])%mod;
  14.             tmp[3]=(v[4]+v[8])%mod;
  15.             tmp[4]=(v[0]+v[3]+v[9])%mod;
  16.             tmp[6]=(v[0]+v[1]+v[7])%mod;
  17.             tmp[7]=(v[2]+v[6])%mod;
  18.             tmp[8]=(v[1]+v[3])%mod;
  19.             tmp[9]=(v[2]+v[4])%mod;
  20.             for(int i=0;i<10;i++)
  21.                 v[i]=tmp[i];
  22.         }
  23.         int sum=0;
  24.         for(int i=0;i<10;i++)
  25.             sum=(sum+v[i])%mod;
  26.         return sum;
  27.     }
  28. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement