当前位置: 首页 > news >正文

第22天(简单题中等题 二分查找)

打卡第二十二天
1道简单题+3道中等题

image

题目:

image

思路:

image

代码:

class Solution {
public:bool search(vector<int> &nums, int target) {int n = nums.size();if (n == 0) {//数组为空直接返回 falsereturn false;}if (n == 1) {//数组只有一个元素,直接比较是否等于目标值return nums[0] == target;}int l = 0, r = n - 1;//初始化左右指针,开始二分搜索循环while (l <= r) {int mid = l + (r - l) / 2;if (nums[mid] == target) {//如果中点值等于目标值,直接返回 truereturn true;}if (nums[l] == nums[mid] && nums[mid] == nums[r]) {//当左端点、中点、右端点的值都相等时,无法判断哪边有序,只能同时收缩左右边界++l;--r;} else if (nums[l] <= nums[mid]) {//如果左半部分有序(左端点 <= 中点)if (nums[l] <= target && target < nums[mid]) {//如果目标值在有序的左半部分范围内,搜索左半部分r = mid - 1;} else {//搜索右半部分l = mid + 1;}} else {//右半部分有序if (nums[mid] < target && target <= nums[n - 1]) {//如果目标值在有序的右半部分范围内,搜索右半部分l = mid + 1;} else {//搜索左半部分r = mid - 1;}}}return false;//循环结束没找到,返回 false}
};

三值相等时的处理:通过++l; --r; 来跳过无法判断的情况

耗时≈1.5小时 明天继续

http://www.jsqmd.com/news/37924/

相关文章:

  • In the name of capitalists
  • 2025.11.11总结
  • K8S百万资源预list加载数据方案
  • 102302105汪晓红数据采集作业2
  • 【数据结构】:链表的核心实现与运行解析
  • Meta AI 推出全语种语音识别系统,支持 1600+语言;谢赛宁、李飞飞、LeCun 联手发布「空间超感知」AI 框架丨日报
  • Python Socket网络编程
  • 研发度量DORA+SPACE+OST 影响模型
  • 详细介绍:HUD-汽车图标内容
  • 比特币的简单技术原理
  • 后端八股之mysql - 指南
  • 2025年包装机厂家推荐排行榜,全自动包装机,全自动包装机生产线,非标定制生产线,非标定制机器公司精选指南
  • nginx拦截ip
  • 【CI130x 离在线】FIFO的学习及实例
  • 2025年包装机厂家权威推荐榜:全自动包装机、半自动包装机,高效智能包装解决方案精选
  • CF1187F
  • 刷题日记—数组—数组偏移
  • 【数据结构】:C 语言常见排序算法的实现与特性解析 - 指南
  • rdp远程桌面协议进行远程桌面控制
  • 第五届 RTE 年度 Demo Day 三强公布!看到对话式 AI 的 N 种未来
  • 活用数组题目参考
  • static、static静态代码块、Math库、final
  • Miko Framework 系列(一):简介与核心理念
  • Markdown语法的学习①
  • DeepLiveCam2.3版本直播换脸(附本地部署教程)
  • CF235D
  • 20251108OIFHA
  • 第二次作业-何玮鑫
  • Python serialize listT
  • 2025年EGUOO肠胃片深度解析:科学复配视角下的胃肠健康新答案