学习目标:
目标:熟练运用 Java所学知识
题目内容:
本文内容: 使用Java实现:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置,你可以假设数组中无重复元素
实现思想:
题目中有一个很重要的条件:给的是排序数组,则我们只需要循环读取数组元素和目标值作比较即可;
有两个条件:
1.当找到与目标值相等的元素或者某个元素大于目标值(既数组中没有该目标值)返回当前数组下标
2.数组中最大的元素(既尾元素)小于该目标值,则需要将目标值插到数组末尾,既返回数组长度
实现代码:
public class Practice_03 {
public static void main(String[] args) {
int[] a = {1, 2, 4, 5};
int i = Soulution3(a, 3);
System.out.println(i);
}
private static int Soulution3(int[] a, int m) {
for (int i = 0; i < a.length; i++) {
if (a[i] == m || a[i] > m) {
//当某个元素等于目标值或者大于目标值
return i;
}
if (m > a[a.length - 1]) {
//当数组中所有元素都小于目标值
return a.length;
}
}
return 0;
}
}
运行结果:
2