二分查找 && 三分查找

匿名 (未验证) 提交于 2019-12-02 23:05:13

题意:找出指定元素出现的范围,Ologn

思路:两次二分

class Solution { public:     vector<int> searchRange(vector<int>& nums, int target) {         int l = 0, r = nums.size() - 1;         int lx = -1, rx = -1;         while (l <= r) {             int mid = (l + r) >> 1;             if (nums[mid] < target) {                 l = mid + 1;             } else if (nums[mid] > target) {                 r = mid - 1;             } else {                 lx = mid;                 r = mid - 1;             }         }         l = 0, r = nums.size() - 1;         while (l <= r) {             int mid = (l + r) >> 1;             if (nums[mid] < target) {                 l = mid + 1;             } else if (nums[mid] > target) {                 r = mid - 1;             } else {                 rx = mid;                 l = mid + 1;             }         }         vector<int> res;         res.push_back(lx);         res.push_back(rx);         return res;     } };
View Code

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!