题目
这是 LeetCode259 较小的三数之和 的简单版(详细思路见 259 题),其实 259 题也可以取名为:小于 K 的三数之和。所以两道题解题思路一样,259 题就是在 1099 题上套了层循环。
解题
解题一:二分查找
// javascript
var twoSumLessThanK = function(nums, k) {
nums.sort((a, b) => a - b);
let sum = -1;
for (let i = 0; i < nums.length - 1; ++i) {
const target = k - nums[i];
let left = i + 1, right = nums.length - 1;
while (left <= right) {
const mid = left + ((right - left) >> 1);
if (nums[mid] >= target) {
right = mid - 1;
} else {
left = mid + 1