求两数之和
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] 这样的操作
以上是关于求两数之和的主要内容,如果未能解决你的问题,请参考以下文章