找到了在哪
约 10 分钟
找目标不仅要知道“有没有”,更常要知道“它在第几个”,也就是下标。做法是用一个变量 pos 记住位置,初值设成 表示“还没找到”;一旦相等就记下下标并 break 停止。
int pos = -1;
for (int i = 0; i < n; i++)
if (a[i] == x) { pos = i; break; }
if (pos == -1) cout << "not found";
else cout << pos;
这里 break 保证找到第一个就停,pos 里存的是最靠前的位置。如果去掉 break,循环会一直跑到底,pos 变成最后一个匹配的下标——当有重复元素时,两种写法结果不同,要看题目问的是第一个还是最后一个。复杂度仍是 。注意下标从 数:数组 [4,7,2,9] 里 9 的下标是 ,不是 。
小纸条
[4,7,2,9] 里找 9,pos 最后是几?(下标从 0 数)
登录 后可看答案