当前位置:网站首页>1375. 二进制字符串前缀一致的次数-前序遍历法
1375. 二进制字符串前缀一致的次数-前序遍历法
2022-08-04 13:49:00 【Mr Gao】
1375. 二进制字符串前缀一致的次数
给你一个长度为 n 、下标从 1 开始的二进制字符串,所有位最开始都是 0 。我们会按步翻转该二进制字符串的所有位(即,将 0 变为 1)。
给你一个下标从 1 开始的整数数组 flips ,其中 flips[i] 表示对应下标 i 的位将会在第 i 步翻转。
二进制字符串 前缀一致 需满足:在第 i 步之后,在 闭 区间 [1, i] 内的所有位都是 1 ,而其他位都是 0 。
返回二进制字符串在翻转过程中 前缀一致 的次数。
示例 1:
输入:flips = [3,2,4,1,5]
输出:2
解释:二进制字符串最开始是 “00000” 。
执行第 1 步:字符串变为 “00100” ,不属于前缀一致的情况。
执行第 2 步:字符串变为 “01100” ,不属于前缀一致的情况。
执行第 3 步:字符串变为 “01110” ,不属于前缀一致的情况。
执行第 4 步:字符串变为 “11110” ,属于前缀一致的情况。
执行第 5 步:字符串变为 “11111” ,属于前缀一致的情况。
在翻转过程中,前缀一致的次数为 2 ,所以返回 2 。
示例 2:
输入:flips = [4,1,2,3]
输出:1
解释:二进制字符串最开始是 “0000” 。
执行第 1 步:字符串变为 “0001” ,不属于前缀一致的情况。
执行第 2 步:字符串变为 “1001” ,不属于前缀一致的情况。
执行第 3 步:字符串变为 “1101” ,不属于前缀一致的情况。
执行第 4 步:字符串变为 “1111” ,属于前缀一致的情况。
在翻转过程中,前缀一致的次数为 1 ,所以返回 1 。
这题看似很复杂,千万要理解解题原理,不然暴力去求解,会花费很多时间:
int numTimesAllBlue(int* flips, int flipsSize){
int max=flips[0];
int count=0;
if(flips[0]==1){
count++;
}
for(int i=1;i<flipsSize;i++){
if(flips[i]>max){
max=flips[i];
}
if(max==i+1){
count++;
}
}
return count;
}
边栏推荐
猜你喜欢
Interviewer: Tell me the difference between NIO and BIO
并发刺客(False Sharing)——并发程序的隐藏杀手
Fuse bit of AVR study notes
秋招攻略秘籍,吃透25个技术栈Offer拿到手软
如何通过使用“缓存”相关技术,解决“高并发”的业务场景案例?
[UML] Summary of Information System Analysis and Design Knowledge Points
eyb:JWT介绍
leetcode 48. Rotate Image (Medium)
How to stress the MySQL performance indicators TPS\QPS\IOPS?
第六届未来网络发展大会,即将开幕!
随机推荐
[Niu Ke brush questions-SQL big factory interview questions] NO5. Analysis of a treasure store (e-commerce model)
vcl啥意思_oval
正确使用Impala的invalidate metadata与refresh语句
字符串类的设计与实现_C语言字符串编程题
汉诺塔怎么玩
并发刺客(False Sharing)——并发程序的隐藏杀手
c#之winform(软件开发)
SMART S7-200PLC串行自由口通讯(耐压测试仪)
Map常见的遍历方式-keySet 和 entrySet
oracle+RAC+linux5.1所需要安装的包
橄榄枝大课堂APP正式启动上线
ROS设置plugin插件
文字编码 - XML 教程
面试官:如何查看/etc目录下包含abc字符串的文件?
js深拷贝和浅拷贝具体使用区别_es6深拷贝和浅拷贝
JSX use
一文梳理NLP主要模型发展脉络
【LeetCode】1403. 非递增顺序的最小子序列
两款移相振荡器的对比
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果