leetcode 34. 在排序陣列中查詢元素的第乙個和最後乙個位置
尾語相關刷題筆記部落格
競賽常用模板整理(acm/icpc/ccsp)
leetcode演算法刷題筆記1-鍊錶
leetcode演算法刷題筆記2-棧、隊、堆
leetcode演算法刷題筆記3-遞迴與回溯
leetcode演算法刷題筆記4-貪心
leetcode演算法刷題筆記5-二叉樹
leetcode演算法刷題筆記6-圖
leetcode演算法刷題筆記7-動態規劃
leetcode演算法刷題筆記8-二分查詢
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
示例 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
#include
using
namespace std;
//leetcode提交部分
class
solution
}return nums.
size()
;}};
//leetcode自行使用編譯器(如dev\vc\vs)測試部分
intmain()
;//自己輸入
vector<
int> nums;
for(
int i=
0;i<
4;i++
) solution solve;
cout
(nums,5)
}
#include
using
namespace std;
//leetcode提交部分
class
solution
else
if(target) right = mid-1;
//如是目標位置小於中點,就更新右邊界
}else
if(target>nums[mid]
) left = mid+1;
//如是目標位置大於中點,就更新左邊界 }}
return index;}}
;//leetcode自行使用編譯器(如dev\vc\vs)測試部分
intmain()
;//自己輸入
vector<
int> nums;
for(
int i=
0;i<
4;i++
) solution solve;
cout
(nums,5)
}
#include
using
namespace std;
//leetcode提交部分
class
solution
else
}return n;}}
;//leetcode自行使用編譯器(如dev\vc\vs)測試部分
intmain()
;//自己輸入
vector<
int> nums;
for(
int i=
0;i<
4;i++
) solution solve;
cout
(nums,5)
}
給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。
如果陣列中不存在目標值 target,返回 [-1, -1]。
高階:
你可以設計並實現時間複雜度為 o(log n) 的演算法解決此問題嗎?
示例 1:輸入:nums = [5,7,7,8,8,10], target = 8 輸出:[3,4]
示例 2:
輸入:nums = [5,7,7,8,8,10], target = 6 輸出:[-1,-1]
示例 3:
輸入:nums = , target = 0 輸出:[-1,-1]
0 <= nums.length <= 105
-109 <= nums[i] <= 109
nums 是乙個非遞減陣列
-109 <= target <= 109
#include
using
namespace std;
//leetcode提交部分
class
solution}if
(res[0]
!=-1)
}}return res;}}
;//leetcode自行使用編譯器(如dev\vc\vs)測試部分
intmain()
;//自己輸入
vector<
int> nums;
for(
int i=
0;i<
6;i++)
solution solve;
cout<<
"["<<
(solve.
searchrange
(nums,8)
)[0]
<<
","<<
(solve.
searchrange
(nums,8)
)[1]
<<
"]"
}
不知為何比上面的耗時更久,按原理這個更快,可能太菜了
class
solution
return vector<
int>;;
}private
:int
binarysearch
(vector<
int>
& nums,
int target,
bool lower)
else
}return ans;}}
;
誠邀各校各地有志之士加入我們大學生it學習**流:871352155(請各位廣告大佬高抬貴手,常討論學習無關的朋友請出門右拐∑(っ°д°;)っ) LeetCode刷題筆記(8)
因為這兩天比較忙,沒怎麼刷題,非常有罪惡感,今天開始繼續刷題。今天主攻的是二分查詢的四道題,感覺還是比較簡單的,的確非常高效率的乙個演算法。public class firstbadversion else return left private boolean isbadversion int m...
演算法 LeetCode刷題
given 1,3 2,6 8,10 15,18 return 1,6 8,10 15,18 關鍵就是a 1 b 0 也就是array i 1 1 array i 0 const merge array return array console.log merge 1,3 8,10 2,6 15,1...
Leetcode刷題筆記
1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...