网站图片切换js代码,做网站蓝色和什么颜色搭配好看,贴吧网站开发需求分析,wordpress 发文章题目解析
34. 在排序数组中查找元素的第一个和最后一个位置 我们使用暴力方法进行算法演化#xff0c;寻找一个数字的区间#xff0c;我们可以顺序查找#xff0c;记录最终结果 首先数组是有序的#xff0c;所以使用二分法很好上手#xff0c;但是我们就仅仅使用上一道题…题目解析
34. 在排序数组中查找元素的第一个和最后一个位置 我们使用暴力方法进行算法演化寻找一个数字的区间我们可以顺序查找记录最终结果 首先数组是有序的所以使用二分法很好上手但是我们就仅仅使用上一道题的二分方法这里就仅仅只能够找到这个数组中的target但是我们不能确保是否是端点 因此我们要使用两次二分寻找左端点和右端点先看代码这里面有几个细节看到代码说 算法讲解
class Solution {
public:vectorint searchRange(vectorint nums, int target) {if(nums.size() 0)return {-1, -1};//本题就是寻找target的左端点 右端点int left_ret 0, right_ret 0;int left 0, right nums.size() - 1;//先寻找左端点while (left right){int mid left (right - left) / 2;if (nums[mid] target)left mid 1;else right mid;}if (nums[right] ! target)return {-1,-1};else left_ret left;//寻找右端点right nums.size() - 1;while (left right){int mid left (right - left 1) / 2;if (nums[mid] target)left mid;else right mid - 1;}right_ret right;return { left_ret, right_ret };
}
};