Leetcode - Largest Unique Number
Leetcode - 3Sum Smaller

Leetcode - Two Sum Less Than K

violet posted @ Mar 28, 2020 01:36:11 AM in 算法 with tags Algorithm Golang sort , 289 阅读

https://leetcode.com/problems/two-sum-less-than-k/

Given an array A of integers and integer K, return the maximum S such that there exists i < j with A[i] + A[j] = S and S < K. If no i, j exist satisfying this equation, return -1.

 

Example 1:

Input: A = [34,23,1,24,75,33,54,8], K = 60
Output: 58
Explanation: 
We can use 34 and 24 to sum 58 which is less than 60.

 

The description is shit. i < j only means i is not equal to j.

func twoSumLessThanK(A []int, K int) int {
    sort.Ints(A)
    result := -1
    i := 0
    j := len(A) - 1
    for i < j {
        sum := A[i] + A[j]
        if sum >= K {
            j--
        } else {
            if result < sum {
                result = sum
            }
            i++
        }
    }
    return result
}

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter