`

Leetcode - Search Insert Position

 
阅读更多
[分析] 经典二分查找,下面代码实现了迭代方式,可以验证,若直到循环结束也没有找到目标元素,则left恰好指在比target大的第一个位置, right恰好指在比target小的最后一个位置,因此返回left即可。开始没注意到这个规律,卡在循环结束该返回什么上。

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

分享到:
评论

相关推荐

    C语言-leetcode题解之35-search-insert-position.c

    int searchInsert(int* nums, int numsSize, int target); ``` 这个问题的C语言解决方案需要理解数组的基本操作、二分查找算法以及如何在有序数组中高效地定位元素或插入点。二分查找是一种在每次比较后将搜索范围...

    js-leetcode题解之35-search-insert-position.js

    在本文中,我们将深入探讨一道经典的编程...function searchInsert(nums, target) { let left = 0, right = nums.length - 1; while (left ) { const mid = left + Math.floor((right - left) / 2); if (nums[mid]

    _leetcode-python.pdf

    - Search Insert Position: 在一个排序数组中查找一个目标值,如果不存在则返回应该插入的位置。 - Valid Sudoku: 验证一个9x9的数独是否有效。 - Sudoku Solver: 解数独问题,即给出一个部分填充的数独,要求填充...

    leetcode双人赛-leetcode-solution:没事可做的时候,就来刷刷题吧

    leetcode双人赛 leetcode-solution 闲暇之余,刷一下题,弥补...search-insert-position 最大子序和 maximum-subarray 加一 plus-one 合并两个有序数组 merge-sorted-array 杨辉三角 pascals-triangle 杨辉三角 II pa

    算法-leetcode-剑指offer上的题很多

    - **查找插入位置(Search Insert Position)**: 在排序数组中查找一个数字的插入位置。 - **在排序数组中寻找范围(Search for a Range)**: 在排序数组中找到给定数字范围的位置。 - **查找矩阵中的位置(Search a 2D ...

    leetcode答案-LeetCode-practice:记录在leetcode练习的代码&总结

    leetcode 答案 LeetCode-practice 记录在leetcode练习的代码&总结 ...#35SearchInsertPosition 最佳答案未解 Git使用练习 练习下分支切换&合并 解决冲突 master&feature1 禁用fast forward --no-ff 熟悉stash

    leetcode卡-Leetcode-solutions:LeetCodeDS日常挑战的解决方案

    leetcode卡Leetcode-解决方案 LeetCode DS 日常挑战的解决方案 问题陈述 1.InvertBinaryTree - 2.子序列- 3.SearchInsertPosition - 4.SortColors - 5.单号——

    Leetcode-Algorithm-Exercise

    PalindromeNumber 13_RomanToInteger 14_LongestCommonPrefix 20_ValidParentheses 21_MergeTwoSortedLists 26_RemoveDuplicatesFromSortedArray 27_RemoveElement 28_ImplementStrStr() 35_SearchInsertPosition ...

    丢失的最小正整数leetcode-interview-algorithm:面试时的JS算法

    丢失的最小正整数leetcode interview-algorithm 记录前端面试算法题目详解 目录 Lost Three Nums 随机从一组数组(数组内的数据为从1到n,且n为正整数)里,删除三个数,要求找到丢失的三个数,且运行较快。...Position

    圆和矩形是否重叠leetcode-leetcode_solutions:leetcode_solutions

    圆和椭圆重叠leetcode ——#158 尖端 关心特殊情况 从不同的方向思考 简单的 大批 1.Two Sum -&gt; 使用哈希表避免遍历列表448.查找数组中消失的所有数字-&gt; 1.建立缓冲区来计算数字| 2.使用数组作为带符号的缓冲区118....

    leetcode浇花-LCSolutions:我的力扣解决方案

    leetcode 浇花力扣解决方案 简单的 #0001 - Two Sum #0007 - Reverse Integer #0009 - Palindrome Number #0035 - Search Insert Position #0058 - Length of Last Word #0066 - Plus One #0083 - Remove Duplicates...

    leetcode答案-Conquer-Leetcode:征服-Leetcode

    leetcode 答案 ...Position 找target能插入的第一个位置 或 比target小的值有几个 H-Index II 注意是找后面的target 而且是动态target sqrtx 答案集进行二分 找 mid &lt;= x/mid 的最后一个值 Find Pea

    leetcode316-leetcode_script:leetcode题解更新脚本

    leetcode 316 leetcode 题解更新脚本 用于快速的更新题解、同步leetcode的做题情况。 题解见: 文件名 用途 add_to_blog_solution_table.py 添加题解地址or题解语言到表格,能同步...Position Medium -&gt; Easy 36

    leetcode答案-LeetCode:Swift中的LeetCode

    leetcode 答案LeetCode LeetCode in Swift ...Position Easy #38 Count and Say Easy #53 Maximum Subarray Easy #66 Plus One Easy #70 Climbing Stairs Easy #83 Remove Duplicates from Sorted L

    leetcode1004-leetcode:leetcode

    leetcode 1004 leetcode E:简单,M:中等,H:困难 数组和字符串 217. Contains Duplicate (E) 48. Rotate Image (M) -&gt; 2 73. Set Matrix Zeroes ...Search ...Position ...Search Insert Position (E)

    算法刷题笔记leetcode/lintcode

    - Search Insert Position(搜索插入位置) - Search for a Range(搜索范围) - First Bad Version(第一个错误版本) - Search a 2D Matrix(二维矩阵中的搜索) - Search a 2D Matrix II(二维矩阵中的搜索...

    LeetCode题解(java语言实现).pdf

    * Search Insert Position:该题目要求在排序数组中查找元素,实现方法使用了二分查找算法。 * Longest Consecutive Sequence Java:该题目要求找到最长的连续序列,实现方法使用了哈希表和迭代算法。 * Search a 2D...

    leetcode答案-LeetCode:LeetCode解决方案作者:LiYiji。可能不是最好的,仅供参考。README位于本页底部

    leetcode 答案 #LeetCode LeetCode solution By Li Yiji. Maybe not ...每个cpp文件的文件名中前边的...Position 我图省事,直接用的遍历。正常情况下应该使用二分查找 ###031 Remove Element 我的解法不太好,而且不严密

    LeetCode 刷题汇总1

    * 搜索插入位置(Search Insert Position):在排序数组中搜索插入位置。 8. 动态规划: * 3Sum(3Sum):找到数组中三个元素的和等于目标值的元素。 * 3Sum最近(3Sum Closest):找到数组中三个元素的和最近...

Global site tag (gtag.js) - Google Analytics