zoukankan      html  css  js  c++  java
  • 0035. Search Insert Position (E)

    Search Insert Position (E)

    题目

    Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

    You may assume no duplicates in the array.

    Example 1:

    Input: [1,3,5,6], 5
    Output: 2
    

    Example 2:

    Input: [1,3,5,6], 2
    Output: 1
    

    Example 3:

    Input: [1,3,5,6], 7
    Output: 4
    

    Example 4:

    Input: [1,3,5,6], 0
    Output: 0
    

    题意

    给定一个数组,找到给定值的下标;如果数组中不存在给定值,则返回该值应当插入位置的下标。

    思路

    直接二分查找。


    代码实现

    Java

    class Solution {
        public int searchInsert(int[] nums, int target) {
            int left = 0;
            int right = nums.length - 1;
            while (left <= right) {
                int mid = (left + right) / 2;
                if (nums[mid] < target) {
                    left = mid + 1;
                } else if (nums[mid] > target) {
                    right = mid - 1;
                } else {
                    return mid;
                }
            }
            return left;
        }
    }
    

    JavaScript

    /**
     * @param {number[]} nums
     * @param {number} target
     * @return {number}
     */
    var searchInsert = function (nums, target) {
      let left = 0, right = nums.length - 1
      while (left <= right) {
        let mid = Math.trunc((right - left) / 2) + left
        if (nums[mid] < target) {
          left = mid + 1
        } else if (nums[mid] > target) {
          right = mid -1
        } else {
          return mid
        }
      }
      return left
    }
    
  • 相关阅读:
    mmap和MappedByteBuffer
    Linux命令之TOP
    Linux命令之ss
    MySql Cluster
    HttpClient配置
    注释驱动的 Spring cache 缓存介绍
    Spring AOP 实现原理与 CGLIB 应用
    AspectJ本质剖析
    B树
    imagick-3.1.0RC2 安装错误
  • 原文地址:https://www.cnblogs.com/mapoos/p/13193680.html
Copyright © 2011-2022 走看看