arrays - 最大数量数组中总和小于或等于 k ​​的元素

标签 arrays sum max

我想找到最大值。给定正整数数组中的元素,使得它们的总和小于或等于给定的编号。克。例如,我有一个数组

[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--;
i是元素的最大数量。

关于arrays - 最大数量数组中总和小于或等于 k ​​的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37633701/

相关文章:

javascript - 使用 Javascript 检查数组是否为空

java - java中的方法以数组作为参数,复制第一个元素,然后将长度加倍?

python - 使用列表列表查找所有加起来等于给定数字 python 的组合

php - 具有相同键的 2 个数组元素的总和

java - 此功能的最佳情况是什么?

java - 在 Java ArrayList 中查找最大元素

java - GUI 一次显示阵列的每个图像

javascript - 如何使用函数更改使用 JSON 的响应?

java - 如何避免 Java 中浮点型或 double 型的浮点精度错误?

sql - 在 postgres 中使用 select inside alter table 语句的结果