• 【leetcode】35.搜索插入位置


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

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

    示例 1:

    输入: [1,3,5,6], 5输出: 2

    实现思路: 使用二分查找就可以了。如果使用for循环的话,时间复杂度为O(n) 但是使用二分查找 时间复杂度就下降了很多,因此 注意边界的控制。

    1.当target与查询的mid值相等 返回

    2.当mid的值大于target max = mid-1;

    3.当mid的值小于target min = mid+1

    时间复杂度:o(logn)

    注意边界的控制。

    public int searchInsert(int[] nums, int target) {
            int min = 0;
            int max = nums.length-1;
            int mid;
            int index = 0;
            while (min<=max){
                //如果找到
                mid = (min+max)/2;
                if (nums[mid] == target){
                    return mid;
                }else if (nums[mid]<target){
                    min = mid+1;
                }else {
                    max = mid-1;
                }
            }
            return min;
        }
  • 相关阅读:
    fiddler的详细分析
    在Linux中mysql的一些基本操作
    MySQL运行状态show status详解
    第1节-软件测试基本概念及分类
    HTML
    python 目录
    Web框架 Bottle 、Flask 、Tornado
    Query
    JavaScript基础篇
    DOM、BOM 操作
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860753.html
Copyright © 2020-2023  润新知