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

【LeetCode】167. 两数之和 II - 输入有序数组 - 双指针

目录标题

  • 2023-8-23 09:25:08

2023-8-23 09:25:08

自己写的不是常量级的额外空间,但是写出来了,记录一下。

下次写的时候,请用双指针。

(其实我想了想一想,双指针就没感觉出来:因为我只想到双指针两个都向后,没想到一个也能够在前一个向后。Orz。多做点题目就好了。)
在这里插入图片描述

class Solution {public int[] twoSum(int[] numbers, int target) {int[] result = new int[2];// 从第一个i下标开始找for (int i = 0; i < numbers.length; i++) {// 找到i后面的下标for (int k = i + 1; k < numbers.length; k++) {// 由于 该数组已按 非递减顺序排列// 剪枝:相加之和大于目标数的话,后面的就可以不用判断了if (numbers[i] + numbers[k] > target) {break;}// 相加之和等于目标数 且 仅存在一个有效答案if (numbers[i] + numbers[k] == target) {// result[0] = i + 1;result[1] = k + 1;return result;}}}return result;}
}

O(n) 解法

public int[] twoSum(int[] numbers, int target) {int i = 0;int j = numbers.length - 1;while (i < j) {int sum = numbers[i] + numbers[j];if (sum < target) {i++;} else if (sum > target) {j--;} else {return new int[]{i+1, j+1};}}return new int[]{-1, -1};
}作者:nettee
链接:https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/solutions/87919/yi-zhang-tu-gao-su-ni-on-de-shuang-zhi-zhen-jie-fa/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
http://www.lryc.cn/news/139323.html

相关文章:

  • YOLOV1
  • 美团增量数仓建设新进展
  • ​LeetCode解法汇总2337. 移动片段得到字符串
  • Fpass与Fstop
  • Java快速入门体验
  • 父组件传给子组件的数据是异步的,为什么会导致子组件比父组件先执行?
  • 泛型编程 学习笔记
  • 电脑文件删除了可以找回吗?分享一种简单恢复删除电脑文件办法!
  • Pygame编程(4)event模块
  • Python数据采集实战-使用BeautifulSoup框架解析HTML文档并提取所需内容(附源码和实现效果)
  • Java“牵手”天猫商品列表数据,关键词搜索天猫商品数据接口,天猫API申请指南
  • idea切换Git分支时保存未提交的文件
  • Qt串口通信学习文档
  • 018-时间处理库,预处理
  • Sketch 98 中文版-mac矢量绘图设计
  • Springboot继承Keycloak实现单点登陆与退出
  • 天眼查接口 查询企业信息API 企查查接口
  • Linux 网络编程 和 字节序的概念
  • unet pytorch
  • 前置微小信号放大器的作用是什么
  • 一百六十五、Kettle——用海豚调度器调度Linux资源库中的kettle任务脚本(亲测、附流程截图)
  • xfs ext4 结合lvm 扩容、缩容 —— 筑梦之路
  • 如何修改由 img 标签引入的 svg 图片颜色 (react环境)
  • 归一化的作用,sklearn 安装
  • 半导体企业如何进行跨网数据传输,又能保护核心数据安全?
  • lvs-DR模式:
  • Delphi 开发手持机(android)打印机通用开发流程(举一反三)
  • nodejs替换模版中${}的内容
  • 【快速傅里叶变换(fft)和逆快速傅里叶变换】生成雷达接收到的经过多普勒频移的脉冲雷达信号(Matlab代码实现)
  • 嵌入式学习之linux