Leetcode 199场周赛 B题 灯泡开关 IV
题目链接:https://leetcode-cn.com/contest/weekly-contest-199/problems/bulb-switcher-iv/

题目描述:n个灯泡 一开始全是0,然后需要经过一系列的翻转 生成与target数组的描述一致的状态,翻转操作的定义是 从第i个到第n-1个都翻转,即0变1 1变0
我的做法就是用一个tag来确定当前的状态,遇到第一个1时就将tag变1,连续的1,tag不变,遇到0,tag变为0,连续的0,tag保持不变,tag转换的时候cnt做++操作
下面给出代码:
class Solution {
public:
int minFlips(string target) {
int cnt = 0;
int tag = 0;
for(int i = 0; i < target.length(); i++){
if(target[i] == '1' && tag == 0) cnt++, tag = 1;
if(tag == 1 && target[i] == '0') cnt++, tag = 0;
}
return cnt;
}
};

浙公网安备 33010602011771号