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

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

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

image

题目: 两数之和
image

思路一: 双指针,题目说数组下标从1开始,先初始指针还是从0开始,返回时左右指针都加1就行

代码:

class Solution {
public:vector<int> twoSum(vector<int>& numbers, int target) {int n = numbers.size();int left = 0,right = n - 1;while(left < right){int sum = numbers[left] + numbers[right];if(sum == target){return {left + 1,right + 1};//左右指针+1}else if(sum > target){right--;}else{left++;}}return {};}
};

思路二: 二分查找,先固定一个数,第二个数=目标值-第一个数

代码:

class Solution {
public:vector<int> twoSum(vector<int>& numbers, int target) {for (int i = 0; i < numbers.size(); i++) {// 外层循环:遍历数组中的每一个元素作为第一个数// 内层使用二分查找寻找第二个数// left 从 i+1 开始,避免重复使用同一个元素int left = i + 1, right = numbers.size() - 1;while (left <= right) {int mid = (right - left) / 2 + left;if (numbers[mid] == target - numbers[i]) {return {i + 1, mid + 1};// 返回下标,题目要求从1开始计数,两边都+1} else if (numbers[mid] > target - numbers[i]) {right = mid - 1;} else {left = mid + 1;}}}return {-1, -1};}
};

耗时≈1小时 明天继续

http://www.zskr.cn/news/47932.html

相关文章:

  • Cinema4D 2025保姆级下载安装教程|含安装包获取+新手入门指南
  • CF2101D
  • 01321:棋盘问题
  • C 变量的作用域与生存周期
  • #题解#洛谷P1496#离散化#
  • 20251112 正睿
  • 如何根据色带计算电阻阻值
  • 《云操作系统(OpenStack)第二版》学习笔记汇总版-从0开始完成在线安装并为离线安装准备软件包
  • Day36(6)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01
  • 2025 11 12
  • Total Recall: 如何在Windows下开发输入法
  • 大数据量场景下的编辑 / 选择 / 详情优化
  • RabbitMQ相关
  • 使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践
  • ChatBI 重构工业数据交互:TDengine IDMP 让数据对话更智能
  • 云服务模式进化论:企业云战略的致命误区,从IaaS到FaaS的死亡之旅!
  • Python 实现对遥感影像根据DN值上色
  • 【免费】MySQL自动化运维工具,一键生成WORD和EXCEL
  • 实用指南:轻量化 + 绿色部署的日志监控系统log-monitor设计思路(一)
  • 随机链表的复制-leetcode
  • useActionState 阻止表单重置
  • 部署MQTT Broker - Mosquitto - -YADA
  • 7年java开发的一些感悟
  • 11.12 NOIP模拟6/多校1 改题记录
  • FFmpeg for Android 图传Web
  • 语法记录
  • Win7 隐藏文件夹盘符
  • DotNetGuide 突破了 9.5K + Star,一份全面的C#/.NET/.NET Core学习、工作、面试指南知识库!
  • 在ec2上部署qwen3-VL-2B模型
  • 【数据结构】第六章启航:图论入门——从零掌握有向图、无向图与简单图