本章tipcs,字符串读取: //www.acwing.com/blog/conten…
1204. 错误票据
ps: 这道题的输入输出,并不是让我们输出多少个数,而是让我们按行输出,所以我们可以用getline():
这道题让我们求重号和断号。
根据题目已知条件,题目会给我们一个有序序列,因此,我们对序列排个序,那么这个序列一定是连续升序序列。
我们扫描当前序列。当前序列比前一个序列的序列号大2时,那就一定找到断号了。当当前序列和前一个序列的序列号相等时,那么就找到重号了。
代码托管
www.acwing.com/solution/co…
1245. 特别数的和
思想:枚举
代码托管:www.acwing.com/solution/co…
1210. 连号区间数
所谓的连号区间就是给定一个序列,把这个序列进行升序排序后,会变为一个递增排列,差值为1的序列。
给定序列:
我们任意选取一段,假设我选 3 2 4,然后将3 2 4进行排序,得到2 3 4 。因此3 2 4是一段连号区间。
把所有连号区间的情况枚举出来:
长度为4的连号区间只有一个:
长度为3的连号区间只有一个: (3,2,1),(2,4,1)不是
长度为2的连号区间只有一个:(3,2),(4,1)不是。
长度为4的连号区间有4个:
所有情况的集合:1+1+1+4=7
暴力枚举
我们可以先用两次for循环遍历一遍序列,然后用用sort排序。
接下来我们需要判断是否满足条件,所以还需要再遍历一遍序列。
如果满足条件,flag就为true,否则就为flase。
时间复杂度:
一共有三个for循环,再加一个sort()
时间复杂度为O(n^3+nlogn)。
详细代码//www.acwing.com/solution/co…
1236. 递增三元组
没有思路就先用暴力求解:
三个for循环遍历一下,然后判断,满足条件就计数器++:
代码托管: www.acwing.com/solution/co…
时间复杂度O(n^3),题目给的限制为
(10^5)^3=10^5 * 10^5 * 10^5 =O(10^15) 因此肯定超时了,不过蓝桥杯可以通过60%