给一个数组以及一个数K, 从这个数组里面选择三个数,使得三个数的和小于等于K, 有多少种选择的方法?...在两个数的和小于等于K的问题中,同样设置高低指针,然后判断低指针指向的元素与高指针指向的元素之和是否小于等于K,如果不是,高指针向左移动;否则,数出高低指针中间有多少个不重复的组合,然后低指针向右移动。...这里以上述例子来分析:
得到排序后的 nums = [1,2,2,2,3,3,4,5] ,外循环先取第一个数 1,将问题转化为在 [2,2,2,3,3,4,5] 中找到下于等于 k-1 = 6 的两个数...空间复杂度:O(n)
Python 实现:
class Solution:
"""
@param nums: 数组
@param k: 3个数的和小于等于k
@return...: 3个数小于等于k的个数(相同的组合次数只记为一次)
"""
def threeLtEqK(self, nums, k):
if len(nums) <= 2: