作者SuiseiLeda (彗星雷達)
看板Marginalman
標題Re: [LeetCode] 刷到面試 Grind169 C++
時間Wed Mar 15 17:42:57 2023
704. Binary Search easy題
為啥我寫二分法跑得比暴力解還慢啊
我有寫錯嗎
:(
暴力法:
class Solution {
public:
int search(vector<int>& nums, int target) {
for(int i=0; i<nums.size(); i++){
if(nums[i]==target) return i;
}
return -1;
}
};
二分法:
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0;
int right = nums.size() - 1;
int mid = (left+right)/2;
while(left<=right){
if(target == nums[mid]) return mid;
if(target < nums[mid]) {
right = mid - 1;
mid = (left+right)/2;
continue;
}
if(target > nums[mid]) {
left = mid + 1;
mid = (left+right)/2;
continue;
}
}
return -1;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.136.220 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1678873379.A.2A6.html
→ v03516020: 大師 03/15 17:44
→ dustsstar79: 大師 03/15 17:46
→ NCKUEECS: 再跑一次就不一樣了 03/15 17:52
→ ZooseWu: 我猜陣列數量太小 03/15 17:53
推 tzyysang: std::lower_bound 03/15 18:15