1460.通过翻转子数组使两个数组相等
链接:1460.通过翻转子数组使两个数组相等
难度:Easy
标签:数组、哈希表、排序
简介:给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。
题解 1 - cpp
- 编辑时间:2022-08-24
- 执行用时:12ms
- 内存消耗:13.9MB
- 编程语言:cpp
- 解法介绍:只要数的数量相同就可以匹配。
class Solution {
public:
bool canBeEqual(vector<int>& target, vector<int>& arr) {
int map[1005] = {0};
for (auto &num : arr) map[num]++;
for (auto &num : target) {
if (map[num]-- == 0) return false;
}
return true;
}
};
题解 2 - rust
- 编辑时间:2022-08-24
- 内存消耗:2MB
- 编程语言:rust
- 解法介绍:只要数的数量相同就可以匹配。
impl Solution {
pub fn can_be_equal(target: Vec<i32>, arr: Vec<i32>) -> bool {
let mut map = [0; 1005];
for num in arr {
map[num as usize] += 1;
}
for num in target {
if map[num as usize] == 0 {
return false;
}
map[num as usize] -= 1;
}
true
}
}