Skip to content

Latest commit

 

History

History
128 lines (97 loc) · 2.58 KB

File metadata and controls

128 lines (97 loc) · 2.58 KB

English Version

题目描述

你有一些苹果和一个可以承载 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 个。

 

提示:

  • 1 <= weight.length <= 103
  • 1 <= weight[i] <= 103

解法

方法一:排序

Python3

class Solution:
    def maxNumberOfApples(self, weight: List[int]) -> int:
        weight.sort()
        ans = 0
        t = 0
        for v in weight:
            if t + v > 5000:
                break
            t += v
            ans += 1
        return ans

Java

class Solution {
    public int maxNumberOfApples(int[] weight) {
        Arrays.sort(weight);
        int ans = 0, t = 0;
        for (int v : weight) {
            if (t + v > 5000) {
                break;
            }
            t += v;
            ++ans;
        }
        return ans;
    }
}

C++

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

Go

func maxNumberOfApples(weight []int) int {
	sort.Ints(weight)
	ans, t := 0, 0
	for _, v := range weight {
		if t+v > 5000 {
			break
		}
		t += v
		ans++
	}
	return ans
}

...