列表

详情


1196. 最多可以买到的苹果数量

你有一些苹果和一个可以承载 5000 单位重量的篮子。

给定一个整数数组 weight ,其中 weight[i] 是第 i 个苹果的重量,返回 你可以放入篮子的最大苹果数量

 

示例 1:

输入:weight = [100,200,150,1000]
输出:4
解释:所有 4 个苹果都可以装进去,因为它们的重量之和为 1450。

示例 2:

输入:weight = [900,950,800,1000,700,800]
输出:5
解释:6 个苹果的总重量超过了 5000,所以我们只能从中任选 5 个。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int maxNumberOfApples(vector<int>& weight) { } };

cpp 解法, 执行用时: 16 ms, 内存消耗: 14.9 MB, 提交时间: 2023-10-15 17:42:50

class Solution {
public:
    int maxNumberOfApples(vector<int>& arr) {
        sort(arr.begin(), arr.end());
        int sum = 0;
        int count = 0;
        for(int v : arr) {
            sum += v;
            if(sum > 5000){
                break;
            }
            count++;
        }
        return count;
    }
};

python3 解法, 执行用时: 44 ms, 内存消耗: 16.2 MB, 提交时间: 2023-10-15 17:42:39

class Solution:
    def maxNumberOfApples(self, arr: List[int]) -> int:
        sum = 0
        count = 0
        for i in sorted(arr):
            sum += i
            if sum > 5000:
                break
            count = count + 1
        return count

golang 解法, 执行用时: 20 ms, 内存消耗: 4.9 MB, 提交时间: 2023-10-15 17:42:27

func maxNumberOfApples(arr []int) int {
    sort.Ints(arr)
    sum := 0
    for i := 0; i < len(arr); i++ {
        sum += arr[i]
        if sum > 5000 {
            return i
        }
    }
    return len(arr)
}

java 解法, 执行用时: 4 ms, 内存消耗: 41.9 MB, 提交时间: 2023-10-15 17:42:15

class Solution {
    public int maxNumberOfApples(int[] arr) {
        Arrays.sort(arr);
        int sum = 0;
        int count = 0;
        for(int i = 0;i < arr.length; i++) {
            sum += arr[i];
            if(sum > 5000) {
                break;
            }
            count++;
        }
        return count;
    }
}

上一题