深耕专业教研,探索前沿技术
信息技术来源:2025学年第二学期北斗星盟高三适应性联考

第 7 题

答案与解析

本题解析

参考答案

B

程序分析

x←0;k←0;i←1
i<len(a)?
├─ Y → a[x]=a[i]?
│      ├─ Y → k←k+1
│      └─ N → a[i-k]←a[i];x←x+1
│   i←i+1 → 返回判断 i<len(a)?
└─ N → 输出x

原数组按非降序排列,相同的数连续出现。流程先保留下标0处的元素,从下标1开始扫描。当前元素a[i]与最近保留的元素a[x]相等时,令k增加1,记录跳过的重复元素个数;不相等时,将新值写入a[i-k],再令x增加1。这样,新值会依次写入数组前部连续的位置,x始终指向最近保留的值。扫描结束后,输出的x就是最后一个不同值在这段有效区间中的下标。

原数组共有1、4、5、6四个不同值,去重后依次保存在a[0]~a[3]中,因此输出x=3。