LeetCode 1640. 能否连接形成数组(哈希)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个整数数组 arr ,数组中的每个整数 互不相同
另有一个由整数数组构成的数组 pieces,其中的整数也 互不相同 。请你以 任意顺序 连接 pieces 中的数组以形成 arr 。但是,不允许 对每个数组 pieces[i] 中的整数重新排序。

如果可以连接 pieces 中的数组形成 arr ,返回 true ;否则,返回 false 。

示例 1:
输入:arr = [85], pieces = [[85]]
输出:true示例 2:
输入:arr = [15,88], pieces = [[88],[15]]
输出:true
解释:依次连接 [15][88]示例 3:
输入:arr = [49,18,16], pieces = [[16,18,49]]
输出:false
解释:即便数字相符,也不能重新排列 pieces[0]示例 4:
输入:arr = [91,4,64,78], pieces = [[78],[4,64],[91]]
输出:true
解释:依次连接 [91][4,64][78]示例 5:
输入:arr = [1,3,5,7], pieces = [[2,4,6,8]]
输出:false提示:
1 <= pieces.length <= arr.length <= 100
sum(pieces[i].length) == arr.length
1 <= pieces[i].length <= arr.length
1 <= arr[i], pieces[i][j] <= 100
arr 中的整数 互不相同
pieces 中的整数 互不相同(也就是说,如果将 pieces 扁平化成一维数组,数组中的所有整数互不相同)

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

2. 解题

  • 把 pieces[i] 中的第一个数作为 key,pieces[i] 作为 value,存入哈希map,后面可以快速查找
  • 遍历 arr 数组,查找当前数字是否在哈希map中,不在,false
  • 在的话,遍历 value 和 arr,看是否一致
class Solution {
public:bool canFormArray(vector<int>& arr, vector<vector<int>>& pieces) {unordered_map<int, vector<int>> m;for(auto& p : pieces)m[p[0]] = p;int i = 0, j = 0;for( ; i < arr.size(); ){int first = arr[i];if(m.find(first) == m.end())return false;for(j = 0; j < m[first].size(); ++j){if(arr[i++] != m[first][j])return false;}}return true;}
};

0 ms 10.3 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

python基本知识、数据库、网络、编程等总结

Python语言特性 1 Python的函数参数传递 看两个例子: a 1 def fun(a):a 2 fun(a) print a # 1 a [] def fun(a):a.append(1) fun(a) print a # [1] 所有的变量都可以理解是内存中一个对象的“引用”&#xff0c;或者&#xff0c;也可以看似c中void*的感觉。 通过id来看引…

Android中的Handler的具体用法

Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。Android利用Handler来实现UI线程的更新的。 Handler是Android中的消息发送器&#xff0c;其在哪个Activity中创建就属于且紧紧属于该Activity。还可以说其在哪个线程中new的&#xff0c;就是那个线程的Handler。…

LeetCode 1641. 统计字典序元音字符串的数目(DP)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n&#xff0c;请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。 字符串 s 按 字典序排列 需要满足&#xff1a;对于所有有效的 i&#xff0c;s[i] 在字母表中的位置总是与 s[i1] 相同或在 s[i1] 之…

mysql5.5中的MaxValue关键字

MaxValue是MySQL5.5中的关键字转载于:https://www.cnblogs.com/Neil223/p/3544271.html

python面试总结(二)列表去重与单例

1.Python里面如何实现tuple和list的转换python中&#xff0c;tuple和list均为内置类型&#xff0c; 以list作为参数将tuple类初始化&#xff0c;将返回tuple类型 tuple([1,2,3]) #list转换为tuple 以tuple作为参数将list类初始化&#xff0c;将返回list类型 …

LeetCode 1642. 可以到达的最远建筑(二分查找 / 优先队列贪心)

文章目录1. 题目2. 解题2.1 二分查找2.2 优先队列贪心1. 题目 给你一个整数数组 heights &#xff0c;表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。 你从建筑物 0 开始旅程&#xff0c;不断向后面的建筑物移动&#xff0c;期间可能会用到砖块或梯子。 当从建筑…

ClickHouse高可用及副本测试

1 概述 ​ 对于默认的分布式表的配置&#xff0c;每个分片只有一份&#xff0c;这种多分片单副本集群&#xff0c;挂掉一个节点的话查询分布式表会报错。为了解决这个问题的话可以使用ClickHouse高可用集群&#xff0c;对于每个分片具有2个或2个以上的副本&#xff0c;当某个节…

阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统

秒杀活动是绝大部分电商选择的低价促销&#xff0c;推广品牌的方式。不仅可以给平台带来用户量&#xff0c;还可以提高平台知名度。一个好的秒杀系统&#xff0c;可以提高平台系统的稳定性和公平性&#xff0c;获得更好的用户体验&#xff0c;提升平台的口碑&#xff0c;从而提…

使用for语句打印图形

public class Print { public static void main(String[] args) { int num11; //打印上半部分 for(int i0;i { for(int jnum;j>i1;j--) { System.out.print(" "); //打印空格 } for(int j0;j<i;j) { System.out.print("* "); } System.out.println()…

ClickHouse表引擎之Integration系列

​ Integration系统表引擎主要用于将外部数据导入到ClickHouse中&#xff0c;或者在ClickHouse中直接操作外部数据源。 1 Kafka 1.1 Kafka引擎 ​ 将Kafka Topic中的数据直接导入到ClickHouse。 ​ 语法如下&#xff1a; CREATE TABLE [IF NOT EXISTS] [db.]table_name [O…

LeetCode 756. 金字塔转换矩阵(回溯)

文章目录1. 题目2. 解题1. 题目 现在&#xff0c;我们用一些方块来堆砌一个金字塔。 每个方块用仅包含一个字母的字符串表示。 使用三元组表示金字塔的堆砌规则如下&#xff1a; 对于三元组(A, B, C) &#xff0c;“C”为顶层方块&#xff0c;方块“A”、“B”分别作为方块“…

Flask框架项目实例:**租房网站(一)

Flask是一款MVC框架&#xff0c;主要是从模型、视图、模板三个方面对Flask框架有一个全面的认识&#xff0c;通过完成作者-读书功能&#xff0c;先来熟悉Flask框架的完整使用步骤。 操作步骤为&#xff1a; 1.创建项目2.配置数据库3.定义模型类4.定义视图并配置URL 5.定义模板…

mysql中datetime比较大小问题 (转的)

方法一&#xff1a; 你也可以&#xff1a;select * from t1 where unix_timestamp(time1) > unix_timestamp(2011-03-03 17:39:05) and unix_timestamp(time1) < unix_timestamp(2011-03-03 17:39:52);就是用unix_timestamp函数&#xff0c;将字符型的时间&#xff0c;转…

ClickHouse常见问题及其解决方案

1 概述 在对ClickHouse进行分布表复制表zookeeper保证高可用的情况下进行性能测试时遇到如下坑&#xff0c;进行整理 2 分布表join问题Unknown identifier: LO_CUSTKEY, context:… 1.1 问题描述 SQL如下&#xff1a; SELECT count(1) FROM performance.line_all AS c LEFT…

Python中单引号,双引号,3个单引号及3个双引号的区别

单引号和双引号 在Python中我们都知道单引号和双引号都可以用来表示一个字符串&#xff0c;比如 [python] view plaincopy str1 python str2 "python" str1和str2是没有任何区别的。我们知道Python以其易用性而著名&#xff0c;所以刚开始看教程学习看到单引号…

LeetCode 316. 去除重复字母 / 1081. 不同字符的最小子序列(单调栈)

文章目录1. 题目2. 解题1. 题目 LC 316&#xff1a; 给你一个字符串 s &#xff0c;请你去除字符串中重复的字母&#xff0c;使得每个字母只出现一次。需保证 返回结果的字典序最小&#xff08;要求不能打乱其他字符的相对位置&#xff09;。 示例 1&#xff1a; 输入&#…

VSS 请求程序和 SharePoint 2013

Windows Server 中的 VSS 可用于创建可备份和还原 Microsoft SharePoint Foundation 的应用程序。VSS 提供了一个基础结构&#xff0c;使第三方存储管理程序、业务程序&#xff0c;以及硬件提供程序进行合作&#xff0c;以创建和管理卷影副本。基于此基础结构的解决方案可以使用…

Confluent介绍及其使用

1 confluent介绍 Confluent是用来管理和组织不同数据源的流媒体平台&#xff0c;可以实时地把不同源和位置的数据集成到一个中心的事件流平台。并且很可靠、性能很高。 Confluent目前提供了社区版&#xff08;免费&#xff09;和商业版&#xff08;收费&#xff09;两个版本&…

如何使用 Pylint 来规范 Python 代码风格

Pylint 是什么 Pylint 是一个 Python 代码分析工具&#xff0c;它分析 Python 代码中的错误&#xff0c;查找不符合代码风格标准&#xff08;Pylint 默认使用的代码风格是 PEP 8&#xff0c;具体信息&#xff0c;请参阅参考资料&#xff09;和有潜在问题的代码。目前 Pylint 的…

LeetCode 809. 情感丰富的文字

文章目录1. 题目2. 解题1. 题目 有时候人们会用重复写一些字母来表示额外的感受&#xff0c;比如 "hello" -> "heeellooo", "hi" -> "hiii"。 我们将相邻字母都相同的一串字符定义为相同字母组&#xff0c;例如&#xff1a;&qu…