算法10:搜索插入位置

一.鄙人的解法

需求:搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 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. 学习了搜索插入位置算法
  2. 扩展数组的运用有精进
  3. 算法兴趣+1 总:10
  4. 加强了对算法的分析能力
  5. 感觉这个难度明显变小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值