1921.消灭怪物的最大数量
链接:1921.消灭怪物的最大数量
难度:Medium
标签:贪心、数组、排序
简介:返回在你输掉游戏前可以消灭的怪物的 最大 数量。
题解 1 - cpp
- 编辑时间:2023-09-03
- 执行用时:104ms
- 内存消耗:86.8MB
- 编程语言:cpp
- 解法介绍:排序。
class Solution {
public:
    int eliminateMaximum(vector<int>& dist, vector<int>& speed) {
        vector<double> arr;
        for (int i = 0; i < dist.size(); i++) arr.push_back(1.0 * dist[i] / speed[i]);
        sort(arr.begin(), arr.end());
        for (int i = 0; i < dist.size(); i++) {
            if (i >= arr[i]) return i;
        }
        return dist.size();
    }
};
题解 2 - python
- 编辑时间:2023-09-03
- 执行用时:168ms
- 内存消耗:30.3MB
- 编程语言:python
- 解法介绍:同上。
class Solution:
    def eliminateMaximum(self, dist: List[int], speed: List[int]) -> int:
        arr = [dist[i] / speed[i] for i in range(len(dist))]
        arr.sort()
        for i in range(len(dist)):
            if i >= arr[i]: return i
        return len(dist)
题解 3 - rust
- 编辑时间:2023-09-03
- 执行用时:32ms
- 内存消耗:4.1MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn eliminate_maximum(dist: Vec<i32>, speed: Vec<i32>) -> i32 {
        let mut arr = vec![];
        for i in 0..dist.len() {
            arr.push(dist[i] as f64 / speed[i] as f64);
        }
        arr.sort_by(|a, b| a.partial_cmp(b).unwrap());
        for i in 0..dist.len() {
            if i as f64 >= arr[i] {
                return i as i32;
            }
        }
        dist.len() as i32
    }
}