1. 程式人生 > 其它 >Leetcode 1423. 可獲得的最大點數

Leetcode 1423. 可獲得的最大點數

技術標籤:leetcode

20210206 每日一題
思路:比較簡單的想法是無論是選多少個,都是左邊連續選一部分,右邊連續選一部分。提前算好從左到右和從右到左的字首和,然後只要遍歷一遍左邊連續選多少就可以了。

程式碼:

class Solution {
public:
    int maxScore(vector<int>& cardPoints, int k) {
        vector<int> lsum,rsum;
        int len = cardPoints.size();
        int acc=0;
        for
(int i=0;i<len;++i){ acc+=cardPoints[i]; lsum.push_back(acc); } acc=0; for(int i=len-1;i>=0;--i){ acc+=cardPoints[i]; rsum.push_back(acc); } int ans=0; ans=max(rsum[k-1],lsum[k-1]); for(int i=1;
i<k;++i){ ans=max (ans,rsum[k-i-1]+lsum[i-1]); } return ans; } };

每日一記:快樂週六,還在感冒。每天都在折小餛飩。