Guest User

Untitled

a guest
Feb 19th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. class Solution {
  2. public:
  3. bool PredictTheWinner(vector<int>& nums) {
  4. int length = nums.size();
  5. std::vector< std::vector<int> > s(length, std::vector<int> (length));
  6. for(int l = 0; l < length; l++){
  7. for(int i=0; i < length - l; i++){
  8. if(l==0) s[i][l] = nums[i];
  9. else if (l==1) s[i][l] = max(nums[i], nums[i+1]);
  10. else if (l==2) s[i][l] = max(nums[i] + min(nums[i+1], nums[i+2]),
  11. nums[i+2] + min(nums[i], nums[i+1]));
  12. else s[i][l] = max(nums[i] + min(s[i+2][l-2], s[i+1][l-2]),
  13. nums[i+l] + min(s[i][l-2], s[i+1][l-2]));
  14. }
  15. }
  16. int t = 0;
  17. for(const auto & it : nums)
  18. t += it;
  19. return (s[0][length-1] >= t-s[0][length-1]);
  20. }
  21. };
Add Comment
Please, Sign In to add comment