zoukankan      html  css  js  c++  java
  • LeetCode 35. Search Insert Position

    35. Search Insert Position(二分查找)

    链接

    https://leetcode-cn.com/problems/search-insert-position

    题目

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

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

    示例 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

    思路

    二分查找加了一些别的东西,升序数组,找到返回下标,未找到就返回可以加入的位置.
    代码和正常的二分查找相同,需要注意的是,最后一个返回的应该是left,因为在最后一次循环中,left=right,然后left++,这个位置,就是应该存放的位置。

    代码

        public static int searchInsert(int[] nums, int target) {
        if (nums.length == 0) {
          return 0;
        }
        int left = 0;
        int right = nums.length - 1;
    
        while (left <= right) {
          int mid = left + (right - left) / 2;
          if (nums[mid] == target) {
            return mid;
          } else if (nums[mid] < target) {
            left = mid + 1;
          } else if (nums[mid] > target) {
            right = mid - 1;
          }
        }
        return left;
      }
    
  • 相关阅读:
    ASP.NET 学习笔记(一)ASP.NET 概览
    JSP基础
    算法
    TestNG基础教程
    TestNG基础教程
    TestNG基础教程
    Jira
    Jira
    Jira
    Jira
  • 原文地址:https://www.cnblogs.com/blogxjc/p/12255404.html
Copyright © 2011-2022 走看看