提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
为了不只能看别人相爱,夜里相约看海,而你leetcode第一题都做不出来,所以让我们一起继续遨游在力扣题海,让别人也只有看的份!(虽然我也很想和那个她相约看海HHHH)
一、题目
若数组中存在两个元素的和等于给定的目标值,则输出这两个元素的下标。
示例 1:
输入:nums = [4,3,24,11,12], target = 15
输出:[1,4]
解释:因为 nums[1] + nums[4] == 15 ,返回 [1, 4] 。
二、具体步骤
1.直接遍历数组元素
代码如下(示例):
import java.util.Arrays; public class TowSum { public static int[] Array(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { //其中i,j代表元素下标 for (int j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] == target) { return new int[]{i, j}; } } } return new int[0]; } public static void main(String args[]) { int[] towsum = {2, 7, 11, 15}; int target = 9; int[] temp = Array(towsum, target); String str = Arrays.toString(temp); System.out.println(str); } }
2.用Map.containsKey()方法判断
Map.containsKey()方法为Java集合类中的方法,可以判断是否包含指定的键名,如果Map集合中包含指定的键名则返回true,否则返false。 代码如下(示例):
for(int i = 0; i<nums.length ; i++){ if (hashtable.containsKey(target - nums[i])) { //列如9-2=7 ,如果数组存在元素7,则代表找到了两个目标元素 return new int[]{hashtable.get(target - nums[i]), i};//得到键值对 } hashtable.put(nums[i], i); } return new int[0]; }
总结
今天主要是复习了对于数组的认识和相关的操作,主要是用到了遍历的手法;除此之外,就是接触到了Java 集合类中的 Map.containsKey() 方法,这个方法对于寻找目标值来说的确方便了很多。对于刚开始刷题的小白,可能有的地方很难注意到,并且对于知识的综合等等一些方面都比较薄弱,但是一定要坚持下去,就算每天学一个知识点,写一道题目,长此以往一定会有新的风景等着你,让我们一起长风破浪。