本专栏将会从基础开始,循序渐进,每天刷一道算法题,也请大家多多支持。算法虽然难,但只要肯坚持,一定能学好,希望大家都能够从中有所收获。
专栏地址:每日一道算法题专栏 数据结构专栏
相关数据结构演示软件:链接地址
如果文章知识点有错误的地方,请指正!大家一起学习,一起进步。
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
准备好了吗
Let’s go!
问题描述
输入一个数n(1≤n≤200),然后输入n个数值各不相同的数,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入格式
测试数据有多组,输入n(1<n200),接着输入n个数,然后输入x。
输出样例输入
4 1 2 3 4 3
样例输出
2
相关知识点介绍
有时我们会碰到这样一种情况:给定一些元素,然后查找某个满足某条件的元素。这就是查找操作需要做的事情。查找是学习写代码的一项基本功,是肯定需要掌握的。一般来说,如果需要在一个比较小范围的数据集里进行查找,那么直接遍历每一个数据即可;如果需要查找的范围比较大,那么可以用二分查找等算法来进行更快速的查找。
思路解析
题目给定了n个互不相同的数,然后需要从中寻找值为x的数的下标。因此可以设定一个数组a,用来存放这n个数。然后遍历数组a,寻找某个下标k,使得[k]==x成立。如果找到,则输出k,并退出查询;如果当k遍历完之后还没有找到x,那么输出-1。
参考代码
import javafx.util.Pair;
import java.util.Scanner;
public class Main {
public static int maxn = 210;
public static int[] a = new int[maxn];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//获取n个数
for (int i=0;i<n;i++){
a[i] = sc.nextInt();//输入n个数
}
int x = sc.nextInt();//要查找的数
for(int i=0;i<n;i++){
if(a[i] == x) {
//如果找到了x
System.out.println(i);//输出相应的下标
break;
}
}
}
}