数组的两个元素之和
问题描述
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。输出起对应下标及加法算式。具体代码如下:
int[] nums = new int[]{2, 7, 11, 15};
int target = 9;
Find:
for (int i = 0; i < nums.length; i++) {
int temp = nums[i];
for (int j = 0; j < nums.length; j++) {
if (target == temp + nums[j]) {
System.out.println("i => " + i + ", j => " + j);
System.out.println(temp + " + " + nums[j] + " = " + target);
break Find;
}
}
}
}
在这个问题当中,关键的一步是处理如何在数组中遍历查找两个元素的和为target,我在这里用到了两层循环:
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
}
}
进入循环之后,先进行temp = nums[0]这一步,之后再次遍历数组,进行查找与temp之和等于target的元素:
//在遍历的过程中不断地进行判断,二者之和是否等于target
if (target == temp + nums[j]) {}
当相等时,按要求打印输出,跳出循环,这里引用到了循环命名知识:
'NameByYouself': for (int i = 0; i < nums.length; i++) {}
在循环中 break 'NameByYouself'
,便可在内部循环中结束外部循环。
希望这篇博文能够帮助到大家。