首页 > 技术文章 > 1.两数之和

YoungSone 2020-05-09 19:35 原文

代码 :

 1  public int[] twoSum(int[] nums, int target) {
 2           int[] a=new int[2];
 3             for(int i=0;i<nums.length;i++){
 4                 for (int j=i+1;j<nums.length;j++){
 5                     if (nums[i]+nums[j]==target){
 6                         a[0]=i;
 7                         a[1]=j;
 8                         return a;
 9                     }
10                 }
11             }
12         return a;
13     }
View Code

测试代码:

 1 public class Solution {
 2 
 3     public int[] twoSum(int[] nums, int target) {
 4             int[] a=new int[2];
 5             for(int i=0;i<nums.length;i++){
 6                 for (int j=i+1;j<nums.length;j++){
 7                     if (nums[i]+nums[j]==target){
 8                         a[0]=i;
 9                         a[1]=j;
10                         return a;
11                     }
12                 }
13             }
14         return a;
15     }
16 
17     public static void main(String[] args) {
18         Solution solution=new Solution();
19         int[] nums={3,4,5,6,7};
20         int[] b=solution.twoSum(nums,9);
21         System.out.println(b[0]);
22         System.out.println(b[1]);
23     }
24 }
View Code

 

关键点:一维数组,双重for循环,if条件判断

思路:首先通过一层循环遍历数组元素,获取第一个元素值

   然后缩小遍历范围为(length-i),获取第二个元素值,

   然后与目标值进行比对,如果比对成功则将获取值的下标填充到新建数组中,

   最后将值返回。 

推荐阅读