最近在学习 Rust 语言,然后用力扣刷题时候发现 Rust 的性能是比较好的,力扣题目如下
题目地址 6120. 数组能形成多少数对
Java 代码
public int[] numberOfPairs(int[] nums) {
Map<Integer, Integer> countMap = new HashMap<>();
for (int num : nums) {
Integer count = countMap.computeIfAbsent(num, k -> 0);
countMap.put(num, ++count);
}
int pair = 0;
int notPair = 0;
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
int count = entry.getValue();
if (count % 2 != 0) {
notPair++;
}
pair = pair + count / 2;
}
int[] result = new int[2];
result[0] = pair;
result[1] = notPair;
return result;
}
Rust 代码
use std::collections::HashMap;
pub fn number_of_pairs(nums: Vec<i32>) -> Vec<i32> {
let mut result = Vec::new();
let mut count_map = HashMap::new();
for num in nums {
let count = count_map.get(&num);
if count.is_none() {
count_map.insert(num, 1);
} else {
count_map.insert(num, count.unwrap() + 1);
}
}
let mut pair = 0;
let mut not_pair_count = 0;
for (num, count) in count_map {
if count % 2 != 0 {
not_pair_count = not_pair_count + 1;
}
pair = pair + count / 2;
}
result.push(pair);
result.push(not_pair_count);
return result;
}
性能对比
Java 和 Rust 的写的时间复杂度与空间复杂度一样的,多次提交之后,力扣系统给出的结果感觉到性能·差异太大了,如下图所示

博客作者在学习Rust语言并使用力扣平台刷题时,发现Rust的性能优于Java。同一道题目,尽管两者的代码时间复杂度和空间复杂度相同,但Rust的执行效率显著高于Java。文章提供了Java和Rust的实现代码,并附带了Rust的学习资源链接。力扣系统的性能测试结果显示了这一差异。

3076

被折叠的 条评论
为什么被折叠?



