【剑指OFFER】57. 和为s的两个数字
发布日期:2021-06-29 19:47:02 浏览次数:3 分类:技术文章

本文共 754 字,大约阅读时间需要 2 分钟。

题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。

示例 1:

输入:nums = [2,7,11,15], target = 9

输出:[2,7] 或者 [7,2]

示例 2:

输入:nums = [10,26,30,31,47,60], target = 40

输出:[10,30] 或者 [30,10]

限制:

1 <= nums.length <= 10^5

1 <= nums[i] <= 10^6

答案

class Solution {
public int[] twoSum(int[] nums, int target) {
//双指针,从头和从尾 int start = 0, end = nums.length - 1; int[] num = new int[2]; while(start < end){
int temp = target - nums[start]; num[0] = nums[start]; while(temp < nums[end]){
end--; } if(temp == nums[end]){
num[1] = nums[end]; break; } start++; } return num; }}

转载地址:https://darkness.blog.csdn.net/article/details/115525697 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】57 - II. 和为s的连续正数序列
下一篇:【剑指OFFER】55 - II. 平衡二叉树

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月20日 17时54分12秒