zoukankan      html  css  js  c++  java
  • 搜索插入位置

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

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

    示例 1:

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

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

    输入: [1,3,5,6], 7
    输出: 4
    示例 4:

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

    解答:

    /**
         * 二分法
         * 
         * @param nums
         * @param target
         * @return
         */
        public int searchInsert(int[] nums,int target){
            /*左侧指针*/
            int lo=0;
            /*右侧指针*/
            int hi=nums.length-1;
            /*当左侧指针小于等于右侧指针时遍历*/
            while (lo<=hi){
                /*计算中间节点*/
                int mid=(lo+hi)/2;
                /*当中间节点大于目标值时,右侧节点移到中间节点的左边一位*/
                if(nums[mid]>target){
                    hi=mid-1;
                    /*当中间节点小于目标值时,左侧节点移到中间节点的右边一位*/
                }else if(nums[mid]<target){
                    lo=mid+1;
                }else{
                    /*找到了返回目标值当前所在位置*/
                    return mid;
                }
            }
            /*返回左侧节点,即是要插入的位置*/
            return lo;
        }
    View Code

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/search-insert-position

  • 相关阅读:
    Git学习笔记
    利用GitHub Pages和Hexo搭建个人博客
    dpkg的用法
    Ubuntu 16.04安装有道词典
    Linux 命令之删除命令
    Linux 命令之权限修改
    PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
    ubuntu时钟不显示的解决方法
    kali linux 2.0安装sublime text 2
    折腾kali linux2.0
  • 原文地址:https://www.cnblogs.com/wuyouwei/p/11937034.html
Copyright © 2011-2022 走看看