我是靠谱客的博主 落寞香菇,最近开发中收集的这篇文章主要介绍【双指针】1、两数之和(easy),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。
若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的
区域即为当前的窗口),经常用于区间搜索
若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是
排好序的。

leetcode 167. 两数之和 II - 输入有序数组
在这里插入图片描述
分析:给定数组已排好序,寻找和为target的两个数字。
思路:两个指针 i , j i,j ij分别指向数组的头和尾,移动方向相反。当两数之和大于target,指针i右移;当两数之和小于target,指针j左移;等于时,直接返回i,j所在位置+1。

class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int n=numbers.length;
        if(n==0) return null;
        // int[] res = new int[2];
        int i=0,j=n-1;
        while(i<j){
            if(numbers[i]+numbers[j]>target) j--;
            else if(numbers[i]+numbers[j]<target) i++;
            else {
                return new int[]{i+1,j+1};
                }
        }
        return null;
    }
}

最后

以上就是落寞香菇为你收集整理的【双指针】1、两数之和(easy)的全部内容,希望文章能够帮你解决【双指针】1、两数之和(easy)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部