小工具知识网

当前位置: 首页 > 行业知识 > 算法二刷day1

行业知识

算法二刷day1

2026-11-08 14:57:09 来源:互联网转载

704. 二分查找

如何考虑区间:left == rightindex.php/tags-41973.html" >���无意义。 

()

二分查找时间复杂度:logn 

class Solution {public:    int search(vector& nums, int target) {        int left = 0;        int right = nums.size() - 1;        while (left  target) {                right = mid - 1;            }else if (nums[mid]  

35.搜索插入位置 

class Solution {public:    int searchInsert(vector& nums, int target) {        int left = 0;        int right = nums.size() - 1;        while (left  target) right = mid - 1;            else if (nums[mid]  

 left和right的下标弄清楚。

()

 34. 在排序数组中查找元素的第一个和最后一个位置

class Solution {public:    vector searchRange(vector& nums, int target) {        int r = getR(nums, target);        int l = getL(nums, target);        if (l == -2 || r == -2) return {-1, -1};        if ((r - l) > 1) return {l + 1, r - 1};        return {-1, -1};    }private:    int getR(vector& nums, int target) {        int left = 0;        int right = nums.size() - 1;        int r = -2;        while (left  target) {                right = middle - 1;            }else {                left = middle + 1;                r = left;            }        }        return r;    }    int getL(vector& nums, int target) {        int left = 0;        int right = nums.size() - 1;        int l = -2;        while (left 

上一篇:反恐精英服务器怎么选择?

下一篇:本地怎么安装服务器软件?