设 n 个不同的整数排好序后存于 t[0:n-1] 中,若存在若干(>=0)个下标 i,0<= i <=n-1,使得 t[i]=i。设计一个有效算法找到这些下标。 数据输入:第 1 行有一个正整数 n(n<=1000000),表示有n个整数(保证在int内),接下来一行是这 n 个整数。 结果输出:t[i]=i 的下标。若没有则输出 no。注意输出最后有个空格。
时间: 2023-06-05 20:47:31 浏览: 284
题目描述:给定一个长度为n的整数数组t,如果在t[0:n-1]中存在若干个下标i,使得t[i]=i,则设计一个有效算法找到这些下标。
解题思路:对于下标i,如果t[i]=i,那么就找到了一个满足条件的下标。因此我们可以遍历整个数组t,逐个比较t[i]和i的大小,如果相等,则将i加入到结果数组中。
代码实现:
n = int(input())
t = list(map(int, input().split()))
result = []
for i in range(n):
if t[i] == i:
result.append(i)
if result:
print(result)
else:
print("no")
注意输出结果时,如果结果数组不为空,则输出结果数组;否则输出"no"。另外,最后一行输出时需要注意加上空格。
阅读全文