LeetCode 1529. 灯泡开关 IV

题目链接

1529. 灯泡开关 IV

题目思路

这个题我的思路就是贪心,就嗯贪。
我们只需要用一个标志位来记录当前位置的灯泡开关情况,如果当前位置和目标位置不同的话,就反转一次,同时总记录+1.
那么我们这个反转就可以使用位运算,因为灯泡只存在0,1两种情况,我们翻转的时候只需要异或上1即可。

代码实现

class Solution {
    public int minFlips(String target) {
        char[] str = target.toCharArray();
        int turn = 0;
        int res = 0;
        for(int i = 0; i < str.length; i++){
            if(str[i] != turn + '0'){
                res++;
                turn ^= 1;
            }
        }
        return res;
    }
}
posted @ 2020-09-21 19:24  ZJPang  阅读(107)  评论(0编辑  收藏  举报