让自己经常做些算法训练, 目前在LeetCode上面找Easy类型的做起, 俗话说柿子要挑软的捏嘛.
一个非常简单的题目:
幸亏下面有Example说明, 不然我以为用数组中两个元素的Index相加, 尴尬⊙﹏⊙‖∣
二话不说, 直接上双层for循环:
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) {
return new int[]{i, j};
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
嗯, 说到最后面一行抛异常, 我最开始是return null, 要善用异常处理, 后面我会专门花一块时间学一下.
看了答案, 我的解法被归类于暴力法(Brute force), 有点儿尴尬. 说实话, 虽然很久没写代码, 但是我其实觉得我的变成思想是有所提升的.
瞄了一下第二个解法----Two-pass Hash Table
public int[] twoSumMap(int[] nums, int target){
Map<Integer, Inte