T1:通过翻转子数组使两个数组相等
这题挺水的。题目允许任意次的变换,所以理论上只要两个数组的长度和组成元素一样那么一定可以在有限次变换后变为等价数组。
统计一下两个数组的sum和length然后判断就好。
其实排序后判断每一个元素是否相同也可以,但是用一遍循环求和会更快一点点。
class Solution {
public:
bool canBeEqual(vector<int>& target, vector<int>& arr) {
int n = target.size();
int m = arr.size();
if(n != m) return false;
int sum1 = 0, sum2 = 0;
for(int i = 0 ; i < n; i++)
{
sum1 += target[i];
sum2 += arr[i];
}
if(sum1 != sum2) return false;
else return true;
}
};