LeetCode 35. 搜索插入位置(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 35. 搜索插入位置(二分查找)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目信息
- 2. 解題
- 2.1 暴力遍歷
- 2.2 二分查找
1. 題目信息
給定一個(gè)排序數(shù)組和一個(gè)目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值不存在于數(shù)組中,返回它將會(huì)被按順序插入的位置。
你可以假設(shè)數(shù)組中無(wú)重復(fù)元素。
示例 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來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/search-insert-position
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
2.1 暴力遍歷
class Solution { public:int searchInsert(vector<int>& nums, int target) {int i;for(i = 0; i < nums.size(); ++i){if(target <= nums[i]){return i;}}return i;} };2.2 二分查找
class Solution { public:int searchInsert(vector<int>& nums, int target) {if(target <= nums[0])return 0;if(target > nums[nums.size()-1])return nums.size();int i = 0, j = nums.size()-1, mid, ans = 1;while(i <= j){mid = i + (j-i)/2;if(nums[mid] == target)return mid;else if(nums[mid] > target)j = mid-1, ans = mid;//不知取哪邊,這種寫(xiě)法比較好elsei = mid+1;}return ans;} };我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 35. 搜索插入位置(二分查找)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 513. 找树左下角的
- 下一篇: 动态规划应用--最长递增子序列 Leet