题目:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,return [0,1]
初次看到这个题目,第一反应是双层循环每一个元素和之后的所有元素相加。然后返回下标值。
public class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i = 0;i<=nums.length-1;i++){
for(int j =i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
int[] su = {i,j};
return su;
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
}
这里有几个注意点:
- 数组的长度为属性
- 必须有可靠的返回值
写完代码后达到标准,在所有提交中运行情况如下
Paste_Image.png
明显发现运行情况不理想,这可以理解,双层循环的算法复杂度为 o(n^2)