当前位置: 首页 > 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.jsqmd.com/news/38846/

相关文章:

  • Cinema4D 2025保姆级下载安装教程|含安装包获取+新手入门指南
  • 2014 吉林省赛题解 | CCUT应用OJ题解——F[X] + X = N
  • 洛谷 P4859 已经没有什么好害怕的了 题解(DP,二项式反演)
  • 01321:棋盘问题
  • C 变量的作用域与生存周期
  • 模式识别与机器学习课程笔记(11):深度学习 - 详解
  • 05.创建型 - 简单工厂模式(Simple Factory Pattern)
  • RabbitMQ延迟队列rabbitmq_delayed_message_exchange
  • HaluMem:揭示当前AI记忆系统的系统性缺陷,系统失效率超50%
  • 团队作业2-需求规格说明书
  • Mac安装Visual Studio 2019.dmg详细步骤(附图解,小白也能懂,附安装包)
  • 20251112 正睿
  • 如何根据色带计算电阻阻值
  • 25.11.12 差分约束算法
  • 11/12
  • Linux C/C++ 学习日记(27):KCP协议(三):源码分析与使用示例 - 实践
  • 解决Cursor编辑器无法通过include path识别C++头文件的问题
  • 麒麟桌面系统2503安装openjdk21
  • 重组蛋白基础与技术概述
  • Day36(6)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01
  • E. Journey
  • Dynamics 365 Field Service跨站脚本欺骗漏洞分析
  • Linux优秀的系统--信号(3--信号的保存、阻塞)
  • 深入解析:SQL提数与数据分析指南
  • 日报11.12
  • 大家来写 ICPC 西安(没写完)
  • [译] 省略 Async 与 Await
  • 你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!
  • iverilog、gtkwave工具链接
  • 2025 11 12