Advertisement
Guest User

Untitled

a guest
Jan 19th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int minTaps(int n, vector<int>& ranges) {
  4.         vector<int> state(n+1, INT_MAX);
  5.         for (int i = 0; i < state.size(); i++)
  6.         {
  7.             int l = i - ranges[i];
  8.             int r = min(n, i + ranges[i]);
  9.             if (l <= 0)
  10.             {
  11.                 for (int j = 0; j <= r; j++)
  12.                     state[j] = 1;
  13.             }
  14.             else
  15.             {
  16.                 for (int j = l; j <= r; j++)
  17.                 {
  18.                     if (state[l] != INT_MAX)
  19.                         state[j] = min(state[j], state[l]+1);
  20.                 }
  21.             }    
  22.         }
  23.         return state[n] == INT_MAX ? -1 : state[n];
  24.     }
  25. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement