LeeCode刷题系列开始,第1题两数之和,入门级的简单逻辑,适用于编程入门学习者。
//0001两数之和
/*
给定一个整数数组 nums 和一个整数目标值 target,
请你在该数组中找出和为目标值 targe 的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。
但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
*/
class Solution {
public int[] twoSum(int[] nums, int target) {
//返回的整数组result
int[] result = new int[2];
//已输入整数数组nums,目标值target
//第一个for(;;) i用来遍历控制第一个整数
for(int i=0;i<nums.length;i++){
//第二个for(;;) j用来遍历控制第二个整数,j从i+1起始,避免加法的两个整数重复被遍历
for(int j=i+1;j<nums.length;j++){
//如果第一个整数第二个整数相加==target,就地保留这两个值
if(nums[i]+nums[j]==target){
//将结果存入result
result[0] = i;
result[1] = j;
}else{
//跳过继续循环遍历
continue;
}
}
}
//返回整数数组
return result;
}
}
//本代码为刷题版,不适用于一般编译
1.两数相加:
1)给定一个整数数组 nums 和一个整数目标值 target
2)请你在该数组中找出和为目标值 targe 的那两个整数,并返回它们的数组下标。
(你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。)
思路:
1)一个数组中找两个满足一定条件(相加等于定值,次序无关)的数,需要一一遍历运算比较,如果符合条件就就地保留值。
2)类似于小初高数学里的一个班的同学一一握手,相互握过了一次就不需要重复了。