首页 > 其他分享 >滑动窗口-leetcode-167-俩树之和

滑动窗口-leetcode-167-俩树之和

时间:2023-04-04 11:22:16浏览次数:49  
标签:index1 target int numbers index2 滑动 167 leetcode

以长度为 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
仅存在一个有效答案

思路:滑动窗口


//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int left = 0;
        int right = numbers.length-1;
        while(left<right){
            int res = numbers[left]+numbers[right];
            if(res==target){
                return new int[]{++left,++right};
            } else if (res > target) {
                right--;
            }else{
                left++;
            }
        }
        return new int[]{-1,-1};
    }
}
//leetcode submit region end(Prohibit modification and deletion)

标签:index1,target,int,numbers,index2,滑动,167,leetcode
From: https://www.cnblogs.com/xiaoshahai/p/17285780.html

相关文章

  • 快慢指针-leetcode27移除元素
    给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输......
  • 快慢指针-leetcode-26
    题目描述:给定一个已经排序好的数组,删除重复的元素,使每个元素只出现一次,并返回新的数组长度。不要为另一个数组分配额外的空间,必须采用O(1)额外内存复杂度的原地算法来解决这个问题。示例1:输入:nums=[1,1,2]输出:length=2,nums=[1,2]解释:函数应该返回新的长度2,......
  • 单调队列与滑动窗口一
    单调队列--滑动窗口最值问题显然O(n^2)的时间复杂度是无法接受的我们先考虑滑动窗口滑动过程中最大值的问题过程即为我们想要维护每个滑动区间的最大值,当新插入一个元素前,我们把这个区间的第一个元素移除,插入新元素,并想在尽可能贴近O(1)的时间内得到该区间的最大值......
  • #yyds干货盘点# LeetCode程序员面试金典:三数之和
    题目:给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。  示例1:输入:nums=[-1,0,1,2,-1,-4]输......
  • #yyds干货盘点# LeetCode面试题:加一
    1.简述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。 示例 1:输入:digits=[1,2,3]输出:[1,2,4]解释:输入数组表示数字123。示例 2:输入:digit......
  • [Leetcode Weekly Contest]339
    链接:LeetCode[Leetcode]2609.最长平衡子字符串给你一个仅由0和1组成的二进制字符串s。如果子字符串中所有的0都在1之前且其中0的数量等于1的数量,则认为s的这个子字符串是平衡子字符串。请注意,空子字符串也视作平衡子字符串。返回s中最长的平衡子字符串......
  • 「动态规划」LeetCode 70(爬楼梯)
    Leetcode70题有人问我:烤冷面你这两周怎么总搞简单题?我想说:一步一步来~题干简述给定:假设你正在爬楼梯,需要爬n阶你才能到达楼顶。每次你可以爬1或2个台阶。要求:计算出有多少种爬楼梯的方式。解题思路如果我们缩小视野(把大问题化为小问题),爬到第n阶台阶有两种方式:......
  • 「动态规划」LeetCode 70(爬楼梯)
    Leetcode70题有人问我:烤冷面你这两周怎么总搞简单题?我想说:一步一步来~题干简述给定:假设你正在爬楼梯,需要爬n阶你才能到达楼顶。每次你可以爬1或2个台阶。要求:计算出有多少种爬楼梯的方式。解题思路如果我们缩小视野(把大问题化为小问题),爬到第n阶台阶有两种方式:......
  • 【LEETCODE】​​1053. 交换一次的先前排列​
    1053.交换一次的先前排列难度中等95给你一个正整数数组 arr(可能存在重复的元素),请你返回可在 一次交换(交换两数字 arr[i] 和 arr[j] 的位置)后得到的、按字典序排列小于 arr 的最大排列。如果无法这么操作,就请返回原数组。 示例1:输入:arr=[3,2,1]输出:[3,1,2]解释:交换2......
  • LeetCode 145 二叉树的后序遍历
    LeetCode|145.二叉树的后序遍历给你一棵二叉树的根节点root,返回其节点值的后序遍历。示例1:1\2/3输入:root=[1,null,2,3]输出:[3,2,1]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]提示:树中节点的数目在范围[0,10......