Advertisement
nikunjsoni

1824

Apr 12th, 2021
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int minSideJumps(vector<int>& obstacles) {
  4.         int n = obstacles.size();
  5.         int dp[n+2][4];
  6.         dp[0][1] = dp[0][3] = 1;
  7.         dp[0][2] = 0;
  8.         for(int i=1; i<n; i++){
  9.             int x = obstacles[i];
  10.             for(int j=1; j<=3; j++){
  11.                 if(x == j){
  12.                     dp[i][j] = INT_MAX-5;
  13.                     continue;
  14.                 }
  15.                 dp[i][j] = dp[i-1][j];
  16.                 if(j == 1){
  17.                     int a, b, c;
  18.                     a = dp[i][j];
  19.                     b = (obstacles[i-1] == j && obstacles[i] == 2) ? dp[i-1][2]+2 : dp[i-1][2]+1;
  20.                     c = (obstacles[i-1] == j && obstacles[i] == 3) ? dp[i-1][3]+2 : dp[i-1][3]+1;
  21.                     dp[i][j] = min(a, min(b, c));
  22.                 }
  23.                 else if(j == 2){
  24.                     int a, b, c;
  25.                     b = dp[i][j];
  26.                     a = (obstacles[i-1]==j && obstacles[i]==1) ? dp[i-1][1]+2 : dp[i-1][1]+1;
  27.                     c = (obstacles[i-1]==j && obstacles[i]==3) ? dp[i-1][3]+2 : dp[i-1][3]+1;
  28.                     dp[i][j] = min(a, min(b, c));
  29.                 }
  30.                 else if(j == 3){
  31.                     int a, b, c;
  32.                     c = dp[i][j];
  33.                     a = (obstacles[i-1]==j && obstacles[i]==1) ? dp[i-1][1]+2 : dp[i-1][1]+1;
  34.                     b = (obstacles[i-1]==j && obstacles[i]==2) ? dp[i-1][2]+2 : dp[i-1][2]+1;
  35.                     dp[i][j] = min(a, min(b, c));
  36.                 }
  37.             }
  38.         }
  39.         return  min(dp[n-1][1], min(dp[n-1][2], dp[n-1][3]));
  40.     }
  41. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement