1196. How Many Apples Can You Put into the Basket

You have some apples, where arr[i] is the weight of the i-th apple.  You also have a basket that can carry up to 5000 units of weight.

Return the maximum number of apples you can put in the basket.

 

Example 1:

Input: arr = [100,200,150,1000]
Output: 4
Explanation: All 4 apples can be carried by the basket since their sum of weights is 1450.

Example 2:

Input: arr = [900,950,800,1000,700,800]
Output: 5
Explanation: The sum of weights of the 6 apples exceeds 5000 so we choose any 5 of them.

 

Constraints:

  • 1 <= arr.length <= 10^3
  • 1 <= arr[i] <= 10^3

Rust Solution

struct Solution;

impl Solution {
    fn max_number_of_apples(mut arr: Vec<i32>) -> i32 {
        arr.sort_unstable();
        let n = arr.len();
        let mut sum = 0;
        for i in 0..n {
            sum += arr[i];
            if sum > 5000 {
                return i as i32;
            }
        }
        n as i32
    }
}

#[test]
fn test() {
    let arr = vec![100, 200, 150, 1000];
    assert_eq!(Solution::max_number_of_apples(arr), 4);
    let arr = vec![900, 950, 800, 1000, 700, 800];
    assert_eq!(Solution::max_number_of_apples(arr), 5);
}

Having problems with this solution? Click here to submit an issue on github.