MST

星途 面试题库

面试题:Rust中如何利用重排优化数组操作

在Rust中,给定一个包含整数的向量 `Vec<i32>`,假设存在一些重复元素,要求你通过合理的重排策略,使得相同元素相邻,并且尽可能减少操作步骤。请描述你的思路并给出代码实现。
38.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

思路

  1. 可以使用Rust标准库中的排序函数来解决这个问题。由于我们希望相同元素相邻,对向量进行排序后,相同元素自然会相邻。排序操作的时间复杂度通常为 $O(n log n)$,这在大多数情况下是比较高效的,并且相对简单,能满足减少操作步骤的要求。

代码实现

fn group_duplicates(mut nums: Vec<i32>) -> Vec<i32> {
    nums.sort();
    nums
}

你可以使用以下方式调用这个函数:

fn main() {
    let nums = vec![3, 2, 1, 2, 3];
    let result = group_duplicates(nums);
    println!("{:?}", result);
}