由于要教会家里的智障姐姐,所以要写得很基础。
题目LeetCode1
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。只会存在一个有效答案。
示例:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
遍历数组 nums,i 为当前下标,每个值都判断 map 中是否存在 target-nums[i] 的 key 值,如果存在则找到了两个值,如果不存在则将当前的 (nums[i],i) 存入 map 中,继续遍历直到找到为止。
步骤 1 :定义一个数组 nums 存放需要计算的整数,定义一个 Map 集合存放遍历过的元素。
步骤 2:遍历数组 nums,i=0,nums[0]=2,target=9,9-2=7
class Solution {
// 方法入参为整数型的数组nums 和 整数 target
public int[] twoSum(int[] nums, int target) {
// 创建一个 HashMap 集合,key=数值nums[i],value=下标 i
Map<Integer, Integer> map = new HashMap<>();
// 遍历数组 nums
for(int i = 0; i < nums.length; i++) {
// 每个值都判断 map 中是否存在 target-nums[i] 的 key 值
if(map.containsKey(target - nums[i])) {
// 如果存在则表示找到了两个值,输出两个值的下标
return new int[] {map.get(target-nums[i]), i};
}
// 如果不存在则将当前的 (nums[i],i) 存入 map 中,继续遍历直到找到为止
map.put(nums[i], i);
}
return new int[0];
}
}
public class HelloWorld {
// 主方法入口
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
}
}
所有的 Java 程序由 public static void main(String[] args) 方法开始执行
https://www.runoob.com/java/java-object-classes.html
https://www.runoob.com/java/java-methods.html
https://www.runoob.com/java/java-variable-types.html
https://www.runoob.com/java/java-array.html
https://www.runoob.com/java/java-hashmap.html
https://www.runoob.com/java/java-loop.html
/**
1 执行初始化步骤,int i=0
2 执行布尔表达式,如果为 true,循环体被执行,即执行大括号里的代码System.out.println("Hello World")。如果为false,则循环终止
3 循环体被执行完后,更新 i,i++ 等价于 i= i+1
*/
for(初始化; 布尔表达式; 更新) {
//代码语句
}
for(int i=0; i<3; i++) {
System.out.println("Hello World");
}