LeetCode:Two Sum

来源:互联网 发布:淘宝宝贝上架流程 编辑:程序博客网 时间:2024/06/05 04:46

Two Sum即时讲两个元素相加为指定的target元素,这题比较简单,我直接用的java map类型。将元素压到map元素里,再用get(target-numbers[i])返回value值。

原本我用的java语言,然后做双层循环结果报超时。后来看到有人用C++暴力求解可以过,java效率太低了。

import java.util.HashMap;import java.util.Map;public class Solution {    public int[] twoSum(int[] numbers, int target) {       Map<Integer,Integer> map=new HashMap<Integer,Integer>();       int[] tar=new int[2];       tar[0]=0;       tar[1]=0;       for(int i=0;i<numbers.length;i++){       map.put(numbers[i], i);  //map赋值       }       for(int i=0;i<numbers.length;i++){              if(map.get(target-numbers[i])!=null){   //map匹配主键并返回value值       if(i<map.get(target-numbers[i])){       tar[0]=i+1;       tar[1]=map.get(target-numbers[i])+1;}       else if(i>map.get(target-numbers[i])){       tar[0]=map.get(target-numbers[i])+1;       tar[1]=i+1;       }       }       }       return tar;        }}

0 0
原创粉丝点击