跳到主要内容

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
}
}