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.
    class Solution {
        public int[] twoSum(int[] numbers, int target) {
            int m = 0, n = numbers.length - 1;
            while(m < n){
                if(numbers[m] + numbers[n] == target) return new int[] {m+1, n+1};
                else if(numbers[m] + numbers[n] > target) n--;
                else m++;
            }
            return new int[] {0,0};
        }
    }

    1.查找

    class Solution {
        public int[] twoSum(int[] nums, int target){
            Map<Integer, Integer> map = new HashMap<>();
            for(int i = 0; i < nums.length; i++){
                int com = target - nums[i];
                if(map.containsKey(com) && map.get(com) != i){
                    return new int[] {map.get(com) + 1, i + 1};
                }
                map.put(nums[i],i);
            }
            return new int[] {0,0};
        }
    }

    2.老方法

  • 相关阅读:
    第一个SWT程序
    稀疏数组
    算法与数据结构
    《Java核心技术》学习笔记 第1-3章
    算术运算符
    5.11 rw zip file
    5.10 gob序列化
    5.9 piping between writer and reader
    5.7 io.MultiWriter(buf, f)
    5.7 读写 二进制数据
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/11716989.html
Copyright © 2011-2022 走看看