1. 程式人生 > >19.2.3 [LeetCode 35]

19.2.3 [LeetCode 35]

題解 font sum closed pub 二分 family NPU public

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

題意

找插入位置

題解

技術分享圖片
 1 class Solution {
 2 public:
 3     int searchInsert(vector<int>& nums, int target) {
 4         if (nums.back() < target)return nums.size();
 5         int size = nums.size(), s = 0, e = size - 1
; 6 while (s <= e) { 7 int mid = (s + e) / 2; 8 if (nums[mid] < target) 9 s = mid + 1; 10 else 11 e = mid - 1; 12 } 13 return s; 14 } 15 };
View Code

加上第一行的特判比單純二分要快一倍,很奇妙

19.2.3 [LeetCode 35]