当前位置: 首页 > 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.rkmt.cn/news/46910.html

相关文章:

  • Meta AI 推出全语种语音识别系统,支持 1600+语言;谢赛宁、李飞飞、LeCun 联手发布「空间超感知」AI 框架丨日报
  • Python Socket网络编程
  • 英语翻译题做法
  • 详细介绍:HUD-汽车图标内容
  • CF1187F
  • rdp远程桌面协议进行远程桌面控制
  • 第五届 RTE 年度 Demo Day 三强公布!看到对话式 AI 的 N 种未来
  • 活用数组题目参考
  • static、static静态代码块、Math库、final
  • 2025年EGUOO白加黑睡眠营养包深度解析:昼夜分时配方如何重塑睡眠—能量闭环
  • 2025年河南工业大学2025新生周赛(3)
  • 日总结 25
  • 编程思维与 AI-coding 结合
  • 如何制作一个随身服务器?
  • 业务用例模板(用户线上充值) - f
  • lincon_transformer阅读介绍
  • 完整教程:页表 vs. 组相联缓存:内存管理与性能优化的殊途同归
  • RAG编程实践(DashScope+Milvus)
  • 使用 Docker 快速部署 MinIO 文件存储服务
  • AI智能体落地:Agent-Assist vs 全自动化完整决策指南
  • Python : argument name should be lowercase 警告处理解决方法
  • instanceof(类型)
  • 高级程序语言设计第5次
  • 25.11.11 spfa算法
  • CF2164E Journey 题解
  • 实用指南:[linux仓库]信号保存[进程信号肆]
  • v4l2_subdev和video_device区分
  • 2025年11月全日制艺考生文化课新推荐:聚焦全日制艺考生文化课培训/全日制艺考生文化课机构/核心考点攻坚与沉浸式教学
  • [随笔]关于意识形态
  • Luogu P4151 [WC2011] 最大XOR和路径 题解