sweetculiji

 

比如:

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

输出: index1=1, index2=2

 

 

 1 public class _003TwoSum {
 2 
 3     public static void main(String[] args) {
 4         int a[]={3,22,4,7,8,22};
 5         
 6         display(twoSum3(a,30));
 7     }
 8       //暴力搜索法
 9      public static int[] twoSum(int[] numbers, int target) {
10           int index[] = {0,0};  
11             for(int i=0; i<numbers.length; i ++){  
12                 for(int j=i+1; j<numbers.length; j++){  
13                     if(target == numbers[i]+numbers[j]){  
14                         index[0] = i+1;  
15                         index[1] = j+1;  
16                         return index;  
17                     }  
18                 }  
19             }  
20             return index;  
21                 
22         }
23 
24      //使用map,因为刚好是两个值,一个值一个下表map刚好可以储存然后用map的containsKey的方法 
25      public static  int[] twoSum2(int[] numbers, int target) {
26             int index[] = {0,0};
27             HashMap<Integer, Integer> num = new HashMap<Integer,Integer>();
28             for(int i=0;i<numbers.length;i++){
29                 num.put(numbers[i], i);
30             }
31             for(int i=0;i<numbers.length;i++){
32                 int temp = target-numbers[i];
33                 if(num.containsKey(temp)&&i<num.get(temp)){
34                     index[0] = i+1;
35                     index[1] = num.get(temp)+1;
36                     break;
37                 }
38             }
39             return index;
40         }
41      
42      
43      public static void display(int a[])
44      {
45          for(int i=0;i<a.length;i++)
46              System.out.println(a[i]);
47      }
48      
49      
50    86 }

 

分类:

技术点:

相关文章:

  • 2021-12-04
  • 2022-12-23
  • 2021-11-24
  • 2022-01-19
  • 2021-04-14
  • 2021-10-12
  • 2022-12-23
猜你喜欢
  • 2021-11-24
  • 2021-12-04
  • 2022-02-20
  • 2022-12-23
  • 2022-01-24
  • 2021-04-19
相关资源
相似解决方案