一.鄙人的解法
需求:搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
示例 2:
输入: [1,3,5,6], 2
输出: 1
示例3 :
输入: [1,3,5,6], 2
输出: 1
示例4 :
输入: [1,3,5,6], 0
输出: 0
代码
运行主方法:入口
import java.util.Arrays;
import org.junit.Test;
/**
* 一句话注释
*
* @author 王子威
* @date 2021/4/21
*/
public class wzwsuanfa
{
/**
* 程序入口
* 输入: [1,3,5,6], 5
* 输出: 2
*/
@Test
public void suanfa10()
{
// 数组
int[] nums = {1, 3, 5, 6};
// 搜索的值
int target = 2;
// 调用方法
int i = searchInsert(nums, target);
// 打印返回的值
System.out.println("i = " + i);
}
}
搜索插入位置算法
/**
* 搜索插入位置算法
* @param nums 数组
* @param target 搜索的值
* @return
*/
private int searchInsert(int[] nums, int target) {
// 循环数组
for(int i = 0; i < nums.length; i++)
{
// 一个个判断数组中的值是否 大于或等于 搜索的值
// 如果 大于等于 就说明到了需要插入的位置
// 这时候返回i的值就可以了
if(nums[i] >= target)
{
// 返回插入的位置
return i;
}
}
// 执行到这里说明 target 的值需要插入到最后一个位置
// 所以直接插入长度即可
return nums.length;
}
思路图
作者:王子威
总结
- 学习了搜索插入位置算法
- 扩展数组的运用有精进
- 算法兴趣+1 总:10
- 加强了对算法的分析能力
- 感觉这个难度明显变小