力扣简2379 得到第k个黑块的最少涂色次数

20230310每日一题

滑动窗口题 

class Solution {
 public int minimumRecolors(String blocks, int k) {
        int res=Integer.MAX_VALUE,len=blocks.length();
        int change=0;
        for(int i=0;i<k;i++) {
            if(blocks.charAt(i)=='W') {
                change++;
            }
        }
        res=Math.min(change, res);
        for(int i=k;i<len;i++) {
            if(blocks.charAt(i)==blocks.charAt(i-k)){
                continue;
            }
            else if(blocks.charAt(i)=='W') {
                change++;
            }
            else if(blocks.charAt(i)=='B') {
                change--;
            }
            res=Math.min(change, res);
        }
        return res;
    }
}

 

posted @ 2023-03-10 09:39  Ssshiny  阅读(16)  评论(0)    收藏  举报