题目
力扣的两数之和(第一题)
代码
自己写的代码
public class AaddB {
public static void main(String[] args) {
int[] nums = {2,7,11,15};
int target = 9;
int[] ints = twoSum(nums, target);
System.err.println(Arrays.toString(ints));
}
static int[] twoSum(int[] nums,int target){
int[] n = nums;
int t = target;
int[] newNums = new int[2];
//双重循环处理
for (int i = 0; i < n.length; i++) {
for (int j = 1; j < n.length; j++) {
int i1 = n[i];
int i2 = n[j];
if (i1+i2 == t){
//把得出的结果放进新数组,再返回回去
newNums[0]=i;
newNums[1]=j;
//因为数组中同一个元素在答案里不能重复出现,所以得到答案就直接结束方法。
return newNums;
}
}
}
return null;
}
}
这个代码执行有些不通过,仅用来记录学习历程
力扣答案:
class Solution {
public int[] twoSum(int[] nums, int target) {
int i =0,j=1;
int f_j=1;
int[] a = new int[2];
boolean flag = false;
while(!flag){
if(nums[i]+nums[j]==target){
flag = true;
break;
}else if(j!=nums.length-1){
i++;
j++;
}else if(f_j!=nums.length-1){
f_j++;
i=0;
j=f_j;
}else{
break;
}
}
a[0] = i;
a[1] = j;
return a;
}
}