SOT-143封裝 ESD二極體 型號齊全
阿新 • • 發佈:2021-10-19
從起點開始k個數的sum記為sum1,從終點開始k個數的sum記為sum2
如果sum1 > sum2,則說明相應長度取左邊價值會更大,取完之後sum1 - 當前“起點”,sum2 - 當前“終點”
否則,取右邊,sum1 - 當前“終點”,sum2 - 當前“起點”
相等時無所謂
class Solution { public: int maxScore(vector<int>& cardPoints, int k) { int sum1 = 0, sum2 = 0; int p = 0, q = cardPoints.size() - 1自己選擇的路,跪著也要走完。朋友們,雖然這個世界日益浮躁起來,只要能夠為了當時純粹的夢想和感動堅持努力下去,不管其它人怎麼樣,我們也能夠保持自己的本色走下去。; int len = cardPoints.size(); for(int i = 0; i < len && i < k; i++) { sum1 += cardPoints[i]; sum2 += cardPoints[len - i - 1]; } int ret = 0; int k1 = k, k2 = k; while(k) { if(sum1 >= sum2) { ret+= cardPoints[p]; sum1 -= cardPoints[p]; sum2 -= cardPoints[len - k2]; k2--; p++; } else { ret += cardPoints[q]; sum2 -= cardPoints[q]; sum1 -= cardPoints[k1 - 1]; k1--; q--; } k--; } return ret; } };