ToB企服应用市场:ToB评测及商务社交产业平台

标题: Leetcode 2453. Destroy Sequential Targets | rust 实现 [打印本页]

作者: 魏晓东    时间: 2024-9-11 16:30
标题: Leetcode 2453. Destroy Sequential Targets | rust 实现
题解

问题形貌

给定一个整数数组 nums 和一个整数 space,我们需要找到一个目的值,使得该目的值在 nums 中的出现次数最多。如果有多个目的值出现次数相同,则返回最小的目的值。
解题思路

代码实现
  1. /*
  2. * @lc app=leetcode id=2453 lang=rust
  3. *
  4. * [2453] Destroy Sequential Targets
  5. */
  6. // @lc code=startuse std::collections::HashMap;
  7. impl Solution {
  8.     pub fn destroy_targets(nums: Vec<i32>, space: i32) -> i32 {
  9.         use std::collections::HashMap;
  10.    
  11.         let mut map: HashMap<i32, i32> = HashMap::new();
  12.         for &seed in &nums {
  13.             let key = seed % space;
  14.             *map.entry(key).or_insert(0) += 1;
  15.         }
  16.    
  17.         let mut max = 0;
  18.         let mut result = i32::MAX;
  19.         for &seed in &nums {
  20.             match map.get(&(seed % space)) {
  21.                 Some(&num) => {
  22.                     if num > max {
  23.                         result = seed;
  24.                         max = num;
  25.                     } else if num == max && seed < result {
  26.                         result = seed;
  27.                     }
  28.                 },
  29.                 None => {}
  30.             }
  31.         }
  32.    
  33.         return result;
  34.     }
  35. }
  36. // @lc code=end
复制代码
代码中使用了 Rust 的标准库 HashMap 来实现哈希表,确保了高效的查找和插入操作。通过两次遍历,时间复杂度为 O(n),空间复杂度为 O(k),其中 n 是数组长度,k 是不同的 seed % space 值的数量

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4