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
    }
    
  • 相关阅读:
    多媒体笔记
    全部MIME类型列表
    PHP 标记 <?= <?php
    js渐显文字 时间间隔
    ThinkPHP5 隐式传参的获取方法
    [php] Fatal error: Class Exception not found in
    ionic2 The --v1 and --v2 flags have been removed.
    java POI导出excel,合并单元格边框消失
    swagger暴露程序接口文档
    SpringBoot整合Mybatis
  • 原文地址:https://www.cnblogs.com/mapoos/p/13193680.html
Copyright © 2011-2022 走看看