LeetCode 1422 分割字符串的最大得分[贪心] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1422 分割字符串的最大得分[贪心] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
首先遍历一遍数组将1和0的个数统计下来,接着重新遍历数组,记录当前左0个数和右1个数,注意,右1个数可以通过1总个数减去左1个数得到,得分即左0+右1,更新最大值,代码如下:

class Solution 
public:
    int maxScore(string s) 
        int n = s.size();
        int count0 = 0, count1 = 0;
        for(int i = 0; i < n; i ++) 
            count0 += (s[i] == '0' ? 1 : 0);
        
        count1 = n - count0;
        int score = 0;
        int left0 = 0, right1 = 0;
        for(int i = 0; i < n - 1; i ++) 
            if(s[i] == '0') 
                left0 ++;
            
            right1 = count1 - (i + 1 - left0);
            score = max(score, left0 + right1);
        
        return score;
    
;

以上是关于LeetCode 1422 分割字符串的最大得分[贪心] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

每日一题1422. 分割字符串的最大得分

leetcode刷题(130)——最大得分的路径数目

LeetCode﹝堆ி﹞移除石子的最大得分,吃苹果的最大数目等

LeetCode 1753. 移除石子的最大得分

LeetCode 1753. 移除石子的最大得分

leetcode 1301. 最大得分的路径数目