题解 | #序列找数#
序列找数
http://www.nowcoder.com/practice/a7d1856a72404ea69fdfb5786d65539c
由于序列中的每个值只出现一次,这里可考虑使用哈希记录的思路。 此时可提前知道数组长度,因此可以使用visited数组记录当前值是否存在;数组的索引即为序列nums中的值。 若nums[i]出现一次,则visited[nums[i]]=1;否则为0; 最后遍历visited数组,找到不存在的值。 代码如下: public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] nums = new int[n]; int[] visited = new int[n+1]; int res= 0;
for(int i = 0; i < n; i++){
int x = sc.nextInt();
nums[i] = x;
visited[x] = 1;//记录
}
//输出结果,判断不存在的值
for(int i = 0; i <= n; i++){
if(visited[i] != 1){
res = i;
break;
}
}
System.out.println(res);
return;
}
}