LeetCode题目:486. Predict the Winner
来源:互联网 发布:学校网络监控方案 编辑:程序博客网 时间:2024/05/16 07:15
题目原址:点击打开链接
题目描述:
Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from either end of the array followed by the player 2 and then player 1 and so on. Each time a player picks a number, that number will not be available for the next player. This continues until all the scores have been chosen. The player with the maximum score wins.
Given an array of scores, predict whether player 1 is the winner. You can assume each player plays to maximize his score.
Example 1:
Input: [1, 5, 2]Output: FalseExplanation: Initially, player 1 can choose between 1 and 2. If he chooses 2 (or 1), then player 2 can choose from 1 (or 2) and 5. If player 2 chooses 5, then player 1 will be left with 1 (or 2). So, final score of player 1 is 1 + 2 = 3, and player 2 is 5. Hence, player 1 will never be the winner and you need to return False.
Example 2:
Input: [1, 5, 233, 7]Output: TrueExplanation: Player 1 first chooses 1. Then player 2 have to choose between 5 and 7. No matter which number player 2 choose, player 1 can choose 233.Finally, player 1 has more score (234) than player 2 (12), so you need to return True representing player1 can win.
Note:
- 1 <= length of the array <= 20.
- Any scores in the given array are non-negative integers and will not exceed 10,000,000.
- If the scores of both players are equal, then player 1 is still the winner.
class Solution {public: bool PredictTheWinner(vector<int>& nums) { int n = nums.size(); vector<vector<int>> dp(n, vector<int>(n)); // use to keep the score gap between player1 and player2 for (int i = 0; i < n; i++) dp[i][i] = nums[i]; for (int i = 1; i < n; i++) { for (int j = 0; j+i < n; j++) { dp[j][j+i] = max(nums[j+i]-dp[j][j+i-1], nums[j]-dp[j+1][j+i]); } } return dp[0][n-1] >= 0; // player1 get more score points than player2 }};
阅读全文
0 0
- LeetCode题目:486. Predict the Winner
- [LeetCode]486. Predict the Winner
- LeetCode 486. Predict the Winner
- [leetcode]486. Predict the Winner
- LeetCode 486. Predict the Winner
- LeetCode 486. Predict the Winner
- leetcode:486. Predict the Winner
- 【Leetcode】486. Predict the Winner
- Leetcode 486. Predict the Winner
- LeetCode 486. Predict the Winner
- LeetCode 486. Predict the Winner
- leetcode 486. Predict the Winner
- leetcode 486. Predict the Winner
- [LeetCode] 486. Predict the Winner
- Leetcode 486. Predict the Winner
- LeetCode 486.Predict the Winner
- Leetcode 486. Predict the Winner
- leetcode 486. Predict the Winner
- java 文件属性的读取
- 开始
- Java基础——Vector源码分析
- 关于C#中的几个访问修饰符的说明private,public,protected...
- eclipse导入插件的4中方法
- LeetCode题目:486. Predict the Winner
- Dom表单验证 example
- 批量修改一堆机器的主机名
- 使用gson将json数据进行转换 (json to bean 或 json to list)
- 图像处理之Matlab主界面介绍
- Ubuntu ifconfig命令eth0没有IP 解决方法
- 面向对象的容易出错的赋值
- Java内存区域划分
- [乐意黎转载]CentOS6编译安装PHP7+Nginx