zoukankan      html  css  js  c++  java
  • 167. Two Sum II

    Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.

    The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2.

    Note:

    • Your returned answers (both index1 and index2) are not zero-based.
    • You may assume that each input would have exactly one solution and you may not use the same element twice.

    Example:

    Input: numbers = [2,7,11,15], target = 9
    Output: [1,2]
    Explanation: The sum of 2 and 7 is 9. Therefore index1 = 1, index2 = 2.

    用two pointer

    时间:O(N), 空间:O(1)

    class Solution {
        public int[] twoSum(int[] numbers, int target) {
            int l = 0, r = numbers.length - 1;
            while(l < r) {
                if(numbers[l] + numbers[r] > target)
                    r--;
                else if(numbers[l] + numbers[r] < target)
                    l++;
                else
                    break;
            }
            return new int[] {l + 1, r + 1};
        }
    }
  • 相关阅读:
    async中series的实现 javascript构件
    6.算法-计数排序
    5.算法-快速排序
    4.堆排序
    3.分治法研究-搜索数组中的最长连续递增子集
    字典树(Trie)学习笔记
    并查集笔记
    求树的遍历
    P1087 FBI树
    P5017 摆渡车
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10052260.html
Copyright © 2011-2022 走看看