代码
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] results = {0,0};
int flag = 0;//find out or not
int i=0,j=0 ;//i for first number, j for the distance between two number
for(i = 0; i < nums.length; i++){
for(j = 1; i + j < nums.length; j++){
if(nums[i]+nums[i+j] == target){
results[0] = i;
results[1] = i+j;
flag = 1;
break;//break from inner
}else{
flag = 0;
}
}
if(flag == 1){
break;//break from outer
}
}
return results;
}
}
忘记的知识点
- 数组长度:数组名.length
- 嵌套循环中的break: 每一层的循环中的break只能跳出本层循环
- 数组的声明
解题思路
第一层循环从头开始遍历数组,每次选中的数字是nums[i]
第二层循环从nums[i+1]开始遍历剩下的数字,每次选中的数字是nu ms[i+j]
循环的控制条件都是不要超过数组的长度
判断条件:两数之和=target
学到的知识
- 返回数组 return new int[] {I,j};
今日碎碎念
大学的前三年,从来没有写过课程内容以外的代码,渐渐发觉自己对代码的熟悉程度实在是不足以称自己为程序员,所以从今天开始定了一个小目标:每天至少完成leetcode上的一道题目,上不设限,终极目标是在本科毕业前刷完第一遍leetcode。
随着年龄的增加,我愈加相信那句话,你把时间花费在哪里,那么奇迹就会发生在哪里。我始终为自己的浅薄感到愧疚,希望勤能补拙,希望自己的编程能力对的起自己学校的牌子。