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:4Explanation: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:5Explanation: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`

```
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);
}
```