zoukankan      html  css  js  c++  java
  • 608. Two Sum

    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. Please note that your returned answers (both index1 and index2) are not zero-based.

    Notice

    You may assume that each input would have exactly one solution.

     
    Example

    Given nums = [2, 7, 11, 15], target = 9
    return [1, 2]

    解法一:

     1 public class Solution {
     2     /*
     3      * @param nums: an array of Integer
     4      * @param target: target = nums[index1] + nums[index2]
     5      * @return: [index1 + 1, index2 + 1] (index1 < index2)
     6      */
     7         public int[] twoSum(int[] nums, int target) {  
     8         int[] res = new int[]{-1, -1};  
     9           
    10         int left = 0, right = nums.length - 1;  
    11           
    12         while (left < right) {  
    13             if (nums[left] + nums[right] == target) {  
    14                 res[0] = left + 1;  
    15                 res[1] = right + 1;  
    16                 break;  
    17             } else if (nums[left] + nums[right] > target) {  
    18                 right--;  
    19             } else {  
    20                 left++;  
    21             }  
    22         }  
    23           
    24         return res;  
    25     }  
    26 }

    典型的双指针思路

  • 相关阅读:
    简明python_Day2_字典、集合、模块、类、编程习惯
    测试2T2
    测试2T1
    bzoj2761
    一元三次方程求根公式及韦达定理
    状压DP入门——铺砖块
    高精度模板
    测试1T3
    测试1T2
    测试1T1
  • 原文地址:https://www.cnblogs.com/abc-begin/p/8193435.html
Copyright © 2011-2022 走看看