美文网首页
LeetCode·[Two Sum 两数之和]

LeetCode·[Two Sum 两数之和]

作者: 碧鬼鸠 | 来源:发表于2019-02-24 22:23 被阅读0次

    LeetCode·[Two Sum 两数之和]

    题目:

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
    示例:
    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    分析

    这里需要用到数组的知识,我们先看下数组都有哪些常用方法。
    数组是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来唯一确定数组中的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
    这里,我们只需要用到一维数组。

    声明数组

    声明一维数组的语法格式为:

    数据类型数组名[];    //声明数组
    

    或者:

    数据类型[]数组名;    //声明数组
    

    分配空间

    声明了数组,只是得到了一个存放数组的变量,并没有为数组元素分配内存空间,不能使用。因此要为数组分配内存空间,这样数组的每一个元素才有一个空间进行存储。
    在 Java 中可以使用 new 关键字来给数组分配空间。分配空间的语法格式如下:

    数组名=new 数据类型[数组长度];    //分配空间
    

    当然也可以在声明数组时就给它分配空间,语法格式如下:

    数据类型[]数组名=new 数据类型[数组长度];
    

    获取数组元素

    int[] number={1,2,3,5,8};
    System.out.println("获取第一个元素:"+number[0]);
    System.out.println("获取最后一个元素:"+number[number.length-1]);
    

    遍历数组

    int[] number={1,2,3,5,8};
    for (int i=0;i<number.length;i++)
    {
        System.out.println("第"+(i+1)+"个元素的值是:"+number[i]);
    }
    

    或者

    for(int val:number){
        System.out.print("元素的值依次是:"+val+"\t");
    }
    

    解法:

    class Solution {
    
     public int[] twoSum(int[] nums, int target) {
    
         int len = nums.length;
    
         for(int i=0;i<len;i++){
    
             int m = target-nums[i];
    
             for(int j=i+1;j<len;j++){
    
                 if(nums[j]==m){
    
                     int a[]={i,j};
    
                     return a;
             }
    
         }
    
     }
    
     return null;
    
     }
    
    }
    

    相关文章

      网友评论

          本文标题:LeetCode·[Two Sum 两数之和]

          本文链接:https://www.haomeiwen.com/subject/gukiyqtx.html