力扣 1764. 通过连接另一个数组的子数组得到一个数组

news2024/10/6 10:34:05

题目

给你一个长度为 n 的二维整数数组 groups ,同时给你一个整数数组 nums 。

你是否可以从 nums 中选出 n 个 不相交 的子数组,使得第 i 个子数组与 groups[i] (下标从 0 开始)完全相同,且如果 i > 0 ,那么第 (i-1) 个子数组在 nums 中出现的位置在第 i 个子数组前面。(也就是说,这些子数组在 nums 中出现的顺序需要与 groups 顺序相同)

如果你可以找出这样的 n 个子数组,请你返回 true ,否则返回 false 。

如果不存在下标为 k 的元素 nums[k] 属于不止一个子数组,就称这些子数组是 不相交 的。子数组指的是原数组中连续元素组成的一个序列。

示例

输入:groups = [[1,-1,-1],[3,-2,0]], nums = [1,-1,0,1,-1,-1,3,-2,0]
输出:true
解释:你可以分别在 nums 中选出第 0 个子数组 [1,-1,0,1,-1,-1,3,-2,0] 和第 1 个子数组 [1,-1,0,1,-1,-1,3,-2,0] 。
这两个子数组是不相交的,因为它们没有任何共同的元素。

输入:groups = [[10,-2],[1,2,3,4]], nums = [1,2,3,4,10,-2]
输出:false
解释:选择子数组 [1,2,3,4,10,-2] 和 [1,2,3,4,10,-2] 是不正确的,因为它们出现的顺序与 groups 中顺序不同。
[10,-2] 必须出现在 [1,2,3,4] 之前。

输入:groups = [[1,2,3],[3,4]], nums = [7,7,1,2,3,4,7,7]
输出:false
解释:选择子数组 [7,7,1,2,3,4,7,7] 和 [7,7,1,2,3,4,7,7] 是不正确的,因为它们不是不相交子数组。
它们有一个共同的元素 nums[4] (下标从 0 开始)。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/form-array-by-concatenating-subarrays-of-another-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法1:匹配模拟

Java实现
class Solution {
    public boolean canChoose(int[][] groups, int[] nums) {
        int i = 0, j = 0, res = 0;
        while (i < nums.length) {
            boolean flag = true;
            while (i < nums.length && nums[i] != groups[j][0]) i++;
            int pre = i;
            for (int k = 0; k < groups[j].length; k++) {
                if (i < nums.length && nums[i] == groups[j][k]) i++;
                else {
                    i = pre + 1;
                    flag = false;
                    break;
                }
            }
            if (flag == true) j++;
            if (flag == true && j == groups.length) break;
        }
        return j == groups.length;
    }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大型电商项目开发】订单功能实现(拦截器、feign丢失请求头、接口幂等性)-55

一&#xff1a;订单概念 1.1 订单中心 电商系统涉及到 3 流&#xff0c;分别时信息流&#xff0c;资金流&#xff0c;物流&#xff0c;而订单系统作为中枢将三者有机的集合起来。订单模块是电商系统的枢纽&#xff0c;在订单这个环节上需求获取多个模块的数据和信息&#xff0…

多线程问题(三)

目录 一、线程安全的单例模式 1、饿汉模式 2、懒汉模式 二、阻塞队列 三、定时器 1、标准库中定时器的使用用法 2、模拟实现定时器 a、首先需要创建出一个专门的类来表示schedule中的任务&#xff08;TimerTask&#xff09; b、使用合适的数据结构组织任务 c、…

Servlet基础教程 (保姆级教学)

Servlet基础教程一、Servlet 是什么二、第一个 Servlet 程序2.1 创建项目2.2 引入依赖2.3 创建目录2.4 编写代码2.5 打包程序2.6 部署程序2.7 验证程序三、更方便的部署方式3.1 安装 Smart Tomcat 插件3.2 配置 Smart Tomcat 插件四、常见的访问出错4.1 出现 4044.2 出现 4054.…

【jrebel and xrebel问题记录】激活时出现LS client not configued

教程目录问题描述所使用的环境和版本解决过程手动下载jrebel结束语问题描述 笔者在重装另一台电脑的时候又遇到了这个安装jrebel and xrebel进行激活的问题 但是我在网上找了很多的办法&#xff08;其实都是相同的办法&#xff0c;只是在尝试别人不同的用于激活的服务器&#…

【Java编程进阶】方法初识

推荐学习专栏&#xff1a;Java 编程进阶之路【从入门到精通】 文章目录1. Java 方法初识2. 方法的创建与使用3. 方法的分类3.1 无参无返回值3.2 无参带返回值3.3 有参无返回值3.4 有参带返回值4. 递归方法5. 总结1. Java 方法初识 方法是组合在一起来执行操作语句的集合&#…

k8s收集日志

k8s收集日志 一.收集控制台日志 采用fluentdeskibana来做 所需要的文件可以在这里找 https://github.com/kubernetes/kubernetes/tree/v1.23.0/cluster/addons/fluentd-elasticsearch1.创建目录并下载所需文件 cd /root/k8s/yaml/efk [rootworker1 efk]# ll total 44 -rw-…

绝缘子红外图像检测项目(TF2)

目录 1. 项目背景 2. 图像数据集介绍 labelimg的安装流程&#xff1a; 1. 打开Anaconda Prompt&#xff08;Anaconda3&#xff09; 2. 创建一个新环境来安装labelimg 3. 激活新创建的环境labelimg 4.输入 5.输入labelimg 即可运行 3. 模型介绍 4. 模型性能测试 1. 项目…

Linux学习笔记——Linux实用操作(二)

04、Linux实用操作 4.6、IP地址、主机名 4.6.1、IP地址、主机名 学习目标&#xff1a; 掌握什么是IP地址掌握什么是主机名掌握什么是域名解析 4.6.1.1、IP地址 1、每一台联网的电脑都会有一个地址&#xff0c;用于和其它计算机进行通讯。 IP地址主要有2个版本&#xff0…

2023上半年软考高级-信息系统项目管理师【名师授课班】

信息系统项目管理师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资…

2022年圣诞节 | matlab实现炫酷的圣诞树

*2022年圣诞节到来啦&#xff0c;很高兴这次我们又能一起度过~ 这里的部分代码已经在网上出现过&#xff0c;做了部分优化。是matlab版本。 一、内容介绍 这段代码是一个生成3D圣诞树的Matlab函数。运行该函数时&#xff0c;它使用圆柱函数创建圣诞树的 3D 表面&#xff0c;对…

【一】微服务技术栈导学

微服务技术栈导学什么是微服务&#xff1f;微服务技术栈注册中心配置中心服务网关分布式缓存分布式搜索消息队列分布式日志服务&系统监控和链路追踪自动化部署微服务技术栈包含知识点学习路线知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如…

Android设计模式详解之适配器模式

前言 适配器模式在Android开发中使用率很高&#xff0c;如ListView、RecyclerView&#xff1b; 定义&#xff1a;适配器模式把一个类的接口变换成客户端所期待的另一个接口&#xff0c;从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作&#xff1b; 使用场景&…

2023年加密行业会更难吗?欧科云链研究院“七大趋势预测”

回望2022&#xff0c;加密行业遭遇了种种不可控因素而导致的艰难险阻&#xff0c;也在变革与发展中孕育着生机与活力。 这一年&#xff0c;我们亲眼目睹了Luna暴雷&#xff0c;三箭资本、FTX这些曾经被认为“大而不倒”的机构接连倒下&#xff0c;市场信心严重受挫&#xff1b;…

登陆港股市场,阳光保险的 “价值锚点”

不确定性环境里&#xff0c;信心比黄金还重要。 最近&#xff0c;利好信号频频出现在保险行业&#xff0c;资本信心不断加固。上个月月底&#xff0c;个人养老金制度启动实施&#xff0c;市场迅速传来喝彩声。这不仅将加快推动养老保险作为第三支柱的壮大&#xff0c;而且还为…

ARM体系架构中的存储系统

在计算机系统当中&#xff0c;数据的存储是以字节为单位的&#xff0c;每个地址单元当中都可以存放一个字节的数据&#xff0c;每个字节为8bit。在C语言中编译器为char型的数据分配了一个字节的存储空间&#xff0c;为long型的数据分配了4个字节的存储空间&#xff0c;为int型的…

【NI Multisim 14.0编辑环境——工具栏】

目录 序言 一、工具栏 &#x1f34a;1.“标准”工具栏 &#x1f34a; 2.视图工具栏 &#x1f34a;3.“主”工具栏 &#x1f34a;4.“元器件”工具栏 &#x1f34a;5.“Simulation”&#xff08;仿真&#xff09;工具栏 &#x1f34a;6.“Place probe”&#xff08;放置探针…

ARM64内存虚拟化分析(2)常用结构体

内存虚拟化相关的几个重要结构体如下图所示&#xff1a; 这里介绍几个结构体以及相互之间有关系。 &#xff08;1&#xff09;AddressSpace结构体 它用于表示一个虚拟机或虚拟CPU能够访问的所有物理地址。其中&#xff1a; root&#xff1a;指向根MR Current_map&#xff1…

营销在中国

&#xff08;1&#xff09;4P、4C、4R、4I作为一个企业&#xff0c;不外乎就是两个是&#xff1a;产-销。你生产-客户购买&#xff0c;这个交易能做成&#xff0c;不外乎在于交换的价值&#xff0c;以及交易的价格-成本。一、4P4P&#xff0c;是美国密歇根大学教授杰罗姆麦卡锡…

向量的点乘与X乘以及意义

一、向量的点乘 向量的点乘&#xff08;dot&#xff09;是一个标量积&#xff0c;也叫向量的内积、数量积。 点乘公式&#xff1a; 有向量a b a(a1,a2,a3,...,an) b(b1,b2,b3,...,bn); 那么向量a(dot)ba1b1a2b2a3b3....anbn 从上面我们能可以看出&#xff0c;点乘得到的结…

2022年个人融资方法和工具研究报告

第一章 理论和概况 1.1 融资概念 融资&#xff0c;英文为Financing&#xff0c;指为支付超过现金或转账的购货款而采取的货币交易手段&#xff0c;或者为取得特定资产而筹集资金所采取的货币手段。融资通常指货币资金的持有者和需求者之间&#xff0c;直接或间接地进行资金融…