leetcode1 TwoSum--java使用Hashtable实现

来源:互联网 发布:java编程思想第四版 编辑:程序博客网 时间:2024/06/03 06:50

Given an array of integers, 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.

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

Input: numbers={2, 7, 11, 15}, target=9

Output: index1=1, index2=2

使用Hashtable,查找速度为常数,具体java代码如下:

import java.util.Hashtable;public class Solution {public int[] twoSum(int[] nums,int target){Hashtable<Integer,Integer> ht = new Hashtable<Integer,Integer>();int[] a = new int[2];for(int i=0;i<nums.length;i++){Integer n = ht.get(nums[i]);if(n==null){ht.put(nums[i], i);}n=ht.get(target-nums[i]);if(n!=null&&n<i){   //注意一定要有n<i,否则可能出现重复元素导致结果错误a[0]=n+1;a[1]=i+1;return a;}}return a;}}


0 0
原创粉丝点击