第一次写东西记录刷题过程,希望能坚持下去~
刷了第一题TwoSum,好长时间没接触Java了,都有些陌生了,Run code的时候还出了一些错误,但最后还是写出来了。
双重循环没有问题,但是如何返回数组这困了我一下,因为最近用到了python,返回数组可以直接写[i,j],我也给直接这么写了,可想而知错了呗,然后就新建了一个int数组,把符合要求的索引赋值到数组中,然后返回数组。
看了别人的代码,发现可以直接这样返回:
return new int[]{i,j}
果然是时间太久远了,连数组的创建方式都忘了,整理一下吧:
Java创建数组主要有三种方式:
-
int[] a = new int[5];
-
int[] a = {2,3,5};
3.int[] a = new int[]{4,6,8};
另外,借鉴别人的代码,各种可能性都需要考虑,比如如果数组没有满足条件怎么办?所以,最后我提交的代码是这样的:
class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i=0; i<nums.length; i++){
for(int j=i+1; j<nums.length; j++){
if(nums[i]+nums[j] == target)
return new int[]{i,j};
}
}
throw new IllegalArgumentException("No two sum solution");
}
}
网友评论