数组 – 最大数量.数组中元素的总和小于或等于k

我想找到最大号码.给定正整数数组中的元素,使得它们的和小于或等于给定的否. ķ.例如,我有一个数组

[3,4,7,2,6,5,1] and k=6;

答案是3,因为1,2,3是给出总和6的最大元素.

最佳答案
对数组进行排序,计算元素数量,然后按顺序开始求和元素直到它们的和大于k或者你已经遍历每个元素,如果总和大于k,则从计数中减去1

伪代码:

    let k=6
    sort the array
    [1,2,3,4,5,6,7]
    let sum=0
    let count=7 //(7 elements in the array)
    for (i=0;i<7;i++) {
        sum+=array[i];
        if (sum>k)
            break;
    }
    if (sum>k)
    i--;

我是元素的最大数量.

转载注明原文:数组 – 最大数量.数组中元素的总和小于或等于k - 代码日志