LeetCode·[Two Sum 两数之和]

2019-02-24  本文已影响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;

 }

}
上一篇下一篇

猜你喜欢

热点阅读