fucking-algorithm icon indicating copy to clipboard operation
fucking-algorithm copied to clipboard

twoSum问题的核心思想 :: labuladong的算法小抄

Open utterances-bot opened this issue 3 years ago • 4 comments

文章链接点这里:twoSum问题的核心思想

utterances-bot avatar Jan 17 '22 10:01 utterances-bot

Two Sum III 用SET怎么优化都TLE了

qihang-dai avatar Jan 20 '22 01:01 qihang-dai

您好! 關注您的文章許久,應該算是您的小小小粉絲。 您上述的這個twoSum算法會在輸入值為 nums[] = {3,2,4} 而 target = 6 時噴錯,想請教一下,這個部分您會如何調教這個算法使之通用於各個輸入值呢? ‵‵‵ int[] twoSum(int[] nums, int target) { int left = 0, right = nums.length - 1; while (left < right) { int sum = nums[left] + nums[right]; if (sum == target) { return new int[]{left, right}; } else if (sum < target) { left++; // 让 sum 大一点 } else if (sum > target) { right--; // 让 sum 小一点 } } // 不存在这样两个数 return new int[]{-1, -1}; ‵‵‵

JCwow avatar Feb 01 '22 05:02 JCwow

@JCwow 仔细看文章,这个解法本来就是输入数组有序的情况下使用的,而你给的用例并不是有序的。

labuladong avatar Feb 02 '22 03:02 labuladong

@labuladong 最后这个类似于binary search, 思想很赞。

freestyletime avatar Feb 02 '22 20:02 freestyletime