二分查找
Saulty
这个作者很懒,什么都没留下…
展开
-
LeetCode 162. 寻找峰值
LeetCode 162. 寻找峰值题目题解代码题目题解只需找到大于后面一位元素的位置即可将数组中的任何给定序列视为交替的升序和降序序列。代码// class Solution {// public:// int findPeakElement(vector<int>& nums) {// for (int i = 0; i < nums.size() - 1; i++) {// if (nums[i] &原创 2021-08-08 11:53:42 · 94 阅读 · 0 评论 -
LeetCode 153. 寻找旋转排序数组中的最小值
LeetCode 153. 寻找旋转排序数组中的最小值题目题解代码题目题解关于旋转数组的二分查找可以通过nums[mid]与首或者尾元素进行比较代码class Solution {public: int findMin(vector<int>& nums) { int l=0,r=nums.size()-1; int res=nums[0]; while(l<=r){ int mid原创 2021-08-08 11:53:29 · 74 阅读 · 0 评论 -
LeetCode 74. 搜索二维矩阵
LeetCode 74. 搜索二维矩阵题目题解代码题目题解二分查找代码class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int m=matrix.size(); int n=matrix[0].size(); for(int i=0;i<min(m,n);i++){原创 2021-08-07 22:32:12 · 79 阅读 · 0 评论 -
LeetCode 33. 搜索旋转排序数组
LeetCode 33. 搜索旋转排序数组题目题解代码题目题解通过末尾进行二分查找,不属于严格意义的二分查找代码class Solution {public: int search(vector<int>& nums, int target) { int n=nums.size(); if(!n) return -1; if(nums[n-1]==target) return n-1;原创 2021-08-07 22:31:57 · 78 阅读 · 0 评论 -
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置题目题解代码题目题解二分查找,找到后,再往前往后找到第一个和最后一个代码class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int n=nums.size(); if(!n) return {-1,-1}; int l=0,r=原创 2021-08-07 22:31:41 · 73 阅读 · 0 评论 -
LeetCode 240. 搜索二维矩阵 II
LeetCode 240. 搜索二维矩阵 II题目题解代码题目题解从右上角开始遍历——找规律二分查找,分别查找行和列代码// class Solution {// public:// bool searchMatrix(vector<vector<int>>& matrix, int target) {// if(matrix.size()==0)// return false;//原创 2021-08-04 13:44:44 · 84 阅读 · 0 评论 -
LeetCode 167. 两数之和 II - 输入有序数组
LeetCode 167. 两数之和 II - 输入有序数组题目题解代码题目给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示原创 2021-07-06 12:35:06 · 76 阅读 · 0 评论