麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

[leetcode]486. Predict the Winner

2019-11-11 06:46:18
字體:
來源:轉載
供稿:網友

題目鏈接:https://leetcode.com/PRoblems/predict-the-winner/

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)    {        //vector[start][end]代表nums的頭索引為start,尾索引為end時player1得到的最大的score        vector<vector<int>> scores(20,vector<int>(20,0));        int sum=accumulate(nums.begin(),nums.end(),0);        int target=(sum%2)?sum/2+1:sum/2;        return maxScore(nums,0,nums.size()-1,scores)>=target;    }    int maxScore(vector<int>& nums,int start,int end,vector<vector<int>> scores)    {        if(start>end)            return 0;        if(start==end)            return nums[start];        if(scores[start][end])            return scores[start][end];        int res1=nums[start]+min(maxScore(nums,start+2,end,scores),maxScore(nums,start+1,end-1,scores));        int res2=nums[end]+min(maxScore(nums,start,end-2,scores),maxScore(nums,start+1,end-1,scores));        scores[start][end]=max(res1,res2);        return scores[start][end];    }};方法二(超時):

class Solution{public:    bool PredictTheWinner(vector<int>& nums)    {        //vector[start][end]代表nums的頭索引為start,尾索引為end時player1是否比player2大,即是否大于等于0        vector<vector<int>> scores(nums.size(),vector<int>(nums.size(),INT_MAX));        int res=maxScore(nums,0,nums.size()-1,scores);        return res>=0;    }    int maxScore(vector<int>& nums,int start,int end,vector<vector<int>> scores)    {        if(scores[start][end]==INT_MAX)            scores[start][end]=start==end?nums[start]:max(nums[start]-maxScore(nums,start+1,end,scores),            nums[end]-maxScore(nums,start,end-1,scores));        return scores[start][end];    }};方法三(方法二的非遞歸版):

class Solution{public:    bool PredictTheWinner(vector<int>& nums) {        //vector[start][end]代表nums的頭索引為start,尾索引為end時player1是否比player2大,即是否大于等于0        vector<vector<int>> scores(nums.size(), vector<int>(nums.size(), 0));        for(int i=0;i<nums.size()-1;i++)            scores[i][i]=nums[i];        for(int i=nums.size()-2;i>=0;i--)        {            for(int j=i+1;j<nums.size();j++)            {                scores[i][j]=max(nums[i]-scores[i+1][j],nums[j]-scores[i][j-1]);            }        }        return scores[0][nums.size()-1]>=0;    }};


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人午夜免费国产 | 亚洲人成中文字幕在线观看 | 欧美一级毛片欧美一级成人毛片 | 欧美成年私人网站 | av成人在线免费观看 | 操嫩草| 久久99国产精品视频 | 97视频一二区 | 一区二区美女视频 | 免费观看一级黄色片 | 97久久曰曰久久久 | 久久久久免费精品 | 国产91一区 | 欧美a在线观看 | 啪啪毛片 | 91经典视频 | 亚洲欧美日韩精品久久 | 国产精品视频二区不卡 | 在线观看免费视频麻豆 | 一本色道久久综合狠狠躁篇适合什么人看 | 91色一区二区三区 | 毛片免费视频网站 | 久久精品一区二区三区四区五区 | 中国a级黄色片 | 得得啪在线 | 国产精品成人亚洲一区二区 | 免费视频xxxx | 55夜色66夜色国产精品视频 | 国产精品视频在 | 在线观看国产www | jizzzxxxxhd| 中文字幕在线免费观看电影 | 欧美日韩在线播放一区 | 一级一级一级一级毛片 | 国产一级免费电影 | 久久网站免费 | 美女视频大全网站免费 | 亚洲成人午夜精品 | 欧美在线观看视频一区二区 | 爱福利视频网 | 国产精品7区 |