正文索引 [隐藏]

传送门→

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

T2:检查一个字符串是否包含所有长度为 K 的二进制子串

T3: 课程安排 IV

T4: 摘樱桃 II