求两数之和

Posted baizhuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求两数之和相关的知识,希望对你有一定的参考价值。

题目如下:

技术图片

第一次解答:

 1 class Solution 
 2     public int[] twoSum(int[] nums, int target) 
 3         int length = nums.length;
 4         int[] result = new int[2];
 5         int temp = 0;
 6         for(int i=0;i<length-1;i++)
 7             temp = target -nums[i];
 8             for(int j=i+1;j<length;j++)
 9                 if(nums[j]==temp)
10                     result[0]=i;
11                     result[1]=j;
12                     break;
13                 
14             
15         
16         return result;  
17     
18 

点评:算是比较满意的,但是缺点是如果没有匹配到结果返回值有所不同。合法的结果:【】 我的结果:【0,0】

优化:

 1 class Solution 
 2     public int[] twoSum(int[] nums, int target) 
 3     
 4         int[] result=new int[0];
 5         int temp = 0;
 6         for(int i=0;i<nums.length-1;i++)
 7              temp = target -nums[i];
 8              for(int j=i+1;j<nums.length;j++)
 9                  if(nums[j]==temp)
10                         result = new int[2];
11                         result[0]=i;
12                         result[1]=j;
13                          break;
14                  
15              
16         
17         return result;  
18     
19 

点评:牺牲空间 new int[0] 来满足合法的格式,此外如果没有匹配到,则不需要额外的 new int[2] 这样的操作

 

 

 

 

以上是关于求两数之和的主要内容,如果未能解决你的问题,请参考以下文章

p5 不用+-求两数之和 (leetcode371)

给定一个数组,求两数之和等于某个值

Leetcode-求两数之和

两数之和

第六周编程总结

第六周编程总结