C语言等级考试四级真题:删除数字求最大匹配位置数

qq886936 程序题 共 个子题

娇娇刚学会识数和比大小,她在黑板上写了一串数字:2,1,2,5,4。擦掉第一个2后,剩下的序列是1,2,5,4,其中1在第1位、2在第2位、4在第4位,这三个数的数值等于其所在位置(位置从1开始计数)。

娇娇希望擦掉一部分数字,使得剩下的序列中,数值等于自身位置的数的数量尽可能多,请求出这个最大数量。

限制

  • 时间限制:1000ms
  • 内存限制:65536KB

输入

第一行一个整数TestNum(1 ≤ TestNum ≤ 10),表示测试用例组数。 每组测试用例包含两行:

  1. 第一行一个整数n(1 ≤ n ≤ 1000),表示原始数字序列的长度
  2. 第二行n个正整数,表示原始数字序列

输出

每组测试用例输出一行一个整数,表示最多有多少个数满足数值等于其在新序列中的1-based位置。

样例输入

3
5
2 1 2 5 4
7
2 2 3 2 4 5 3
10
1 1 2 2 3 3 4 4 5 5

样例输出

3
4
5

提示

  • 第一组测试数据:擦掉第一个2,得到序列[1,2,5,4],其中1(第1位)、2(第2位)、4(第4位)符合要求,共3个。
  • 第二组测试数据:删除第4、7个元素,得到序列[2,2,3,4,5],其中第2位的2、第3位的3、第4位的4、第5位的5符合要求,共4个。
  • 第三组测试数据:每组相同数值保留第一个出现的元素,得到序列[1,2,3,4,5],所有元素都符合位置要求,共5个。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧