Daily LeetCode – day0141 1764. Form Array by Concatenating Subarrays of Another Array

// 1764. Form Array by Concatenating Subarrays of Another Array
class Solution {
    public boolean canChoose(int[][] groups, int[] nums) {
        int i = 0;
        int j = 0;
        while (i < groups.length && j < nums.length) {
            while (j < nums.length && groups[i][0] != nums[j]) {
                ++j;
            }
            if (isSame(groups[i], nums, j)) {
                j += groups[i].length;
                ++i;
            } else {
                ++j;
            }
        }
        return groups.length == i;
    }

    private boolean isSame(int[] group, int[] nums, int start) {
        if (nums.length - start < group.length) {
            return false;
        }
        for (int i = 1; i < group.length; ++i) {
            if (group[i] != nums[start + i]) {
                return false;
            }
        }
        return true;
    }
}
学习笔记:
和昨天一样是贪心算法的题目,同样也是中等难度。
同时也是二维数组的题目。
不过今天这题的代码明显要复杂,道理简单好理解,但是实现起来要考虑各种细节怎么运算。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注