[java]两数之和 II - 输入有序数组

news/2024/11/27 4:00:38/

两数之和 II - 输入有序数组

  • leetcode 167 原题链接
  • 解题思路
  • 解题代码
  • 排序专题

leetcode 167 原题链接

167. 两数之和 II - 输入有序数组 – 原题链接

题目描述:
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。
以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。
你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。
你所设计的解决方案必须只使用常量级的额外空间。

示例 1:
输入:numbers = [2,7,11,15], target = 9
输出:[1,2]
解释:2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

示例 2:
输入:numbers = [2,3,4], target = 6
输出:[1,3]
解释:2 与 4 之和等于目标数 6 。因此 index1 = 1, index2 = 3 。返回 [1, 3] 。

示例 3:
输入:numbers = [-1,0], target = -1
输出:[1,2]
解释:-1 与 0 之和等于目标数 -1 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

提示:
2 <= numbers.length <= 3 * 104
-1000 <= numbers[i] <= 1000
numbers 按 非递减顺序 排列
-1000 <= target <= 1000
仅存在一个有效答案

解题思路

这个题我们可以用双指针法.因为数组是有序的,我们一个指针卡住左边,一个指针卡住右边,相加的和去跟目标值去比较,如果相等可以直接返回了,如果小于目标值,左边指针右移让相加和变大,比目标值大呢,右边指针左移,让相加值变小,这样一次循环就可以解决问题了.

解题代码

  public int[] twoSum(int[] numbers, int target) {//左右指针法int left = 0;int right = numbers.length - 1;while(left < right){int num = numbers[left] + numbers[right];if(num == target){//题目交代下标从1开始,所以下标加上1return new int[]{left + 1, right + 1};} else if(num < target){left++;}else if(num > target){right--;}}return null;}

排序专题

递归排序实现和普通方式实现(java)

归并排序解决逆序对问题(java实现,递归方式)

随机快排专题 两种方式的随机快排(使用Java实现)

随机快排的非递归实现方式(java)

堆排序专题-把一个数组变成大根堆的两种方式和根据大根堆来实现对数组的排序


http://www.ppmy.cn/news/97328.html

相关文章

【String——简单使用】

文章目录 String1. 字符串定义和初始化2. 字符串基本操作2.1 访问单个字符2.2 修改字符串内容2.3 字符串查找和比较 3. 常用字符串函数3.1 length() 和 size()3.2 empty()3.3 substr()3.4 c_str() 4.字符与整形之间相互转换4.1 char 类型转 int 类型4.2 int 类型转 char 类型4.…

Mysql函数大全

前言 MySQL提供了众多功能强大、方便易用的函数&#xff0c;使用这些函数&#xff0c;可以极大地提高用户对于数据库的管理效率&#xff0c;从而更加灵活地满足不同用户的需求。本文将MySQL的函数分类并汇总&#xff0c;以便以后用到的时候可以随时查看。 数学函数 &#xf…

随机数发生器设计(二)

一、软件随机数发生器组成概述 密码产品应至少包含一个随机比特生成器。 软件随机数发生器应遵循GM/T 0105-2021《软件随机数发生器设计指南》要求&#xff0c;使用SM3或SM4算法作为生成随机比特算法。 本文以SM3算法为例描述软件随机数发生器的一个设计实例。需要注意的是&a…

SpringCloud Alibaba Sentinel

SpringCloud Alibaba Sentinel Sentinel 基础 官网 1 Github: https://github.com/alibaba/Sentinel 2 快速开始: https://sentinelguard.io/zh-cn/docs/quick-start.html 3 中文: https://github.com/alibaba/Sentinel/wiki/介绍 4 使用手册: https://spring-cloud-alib…

如何顺序处理设备上报的数据

1. 引言 随着智能技术的发展&#xff0c;市场上出现了很多的智能设备&#xff0c;其具有连接网络的能力。用户可以实现远程控制&#xff0c;并且设备也可上报自己的状态&#xff0c;实现云端对设备的运行情况分析。在某些情况下需要保证设备上报状态的有序性&#xff0c;例如传…

光力转债上市价格预测

光力转债 基本信息 转债名称&#xff1a;光力转债&#xff0c;评级&#xff1a;A&#xff0c;发行规模&#xff1a;4.0亿元。 正股名称&#xff1a;光力科技&#xff0c;今日收盘价&#xff1a;22.53元&#xff0c;转股价格&#xff1a;21.46元。 当前转股价值 转债面值 / 转股…

Three.js--》实现3d汽车模型展览搭建

目录 项目搭建 初始化three.js基础代码 添加汽车模型展示 动态修改汽车模型 今天简单实现一个three.js的小Demo&#xff0c;加强自己对three知识的掌握与学习&#xff0c;只有在项目中才能灵活将所学知识运用起来&#xff0c;话不多说直接开始。 项目搭建 本案例还是借助…

《低代码指南》——维格云低代码工作流介绍

工作流模块是在 维格云 表格功能的基础上提供对工作流程的管理。通过 维格云 工作流,我们可以对团队中的工作流程建立一个正式的模型,明确一个工作流程包含哪些阶段,每个阶段由什么人负责,需要完成哪些事项。通过定义工作流,我们可以让团队中的协作更明确和有序。 ●工作流…