💖 喜欢我的文章,记得点赞👍+评论💬+收藏⭐️+关注😙の,你的反馈就是我不断更新的动力!💪 QQ/Wechat:235 40008 备注:CSDN 💖
问题描述: 点击进入原题
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式:
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式:
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入:
6
1 9 4 8 3 9
9
样例输出:
2
数据规模与约定
1 <= n <= 1000。
题目解析:
先将所有输入接收,再到数组中访问,当访问到第一个要查找的整数a即输出序号即可。我在下面的代码接收输入中使用了BufferedReader,加快运行速度,根据下面我的提交记录,即可看到,不懂的可以去搜下BufferedReader的使用,因为使用Java,会比C等语言慢很多。
//java版:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] nums = br.readLine().split(" ");
int m = Integer.parseInt(br.readLine());
br.close();
for (int i = 0; i < n ; ++i) {
if (m == Integer.valueOf(nums[i])) {
System.out.println(i+1);
return ;
}
}
System.out.println(-1);
return ;
}
}
下面是未使用BufferedReader的代码,根据上面的运行时间即可看出来运行速度差异。
import java.util.Scanner;
public class Main {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
int n = in.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
}
int x = in.nextInt();
for (int i = 0; i < a.length; i++) {
if (a[i] == x) {
System.out.println(i + 1);
return;
}
}
System.out.println(-1);
}
}