From 0ffd017f8a252f9b828ffcd8ae901a1911480813 Mon Sep 17 00:00:00 2001 From: bgmer7 Date: Thu, 22 Sep 2022 18:44:24 +0800 Subject: [PATCH] =?UTF-8?q?1640.=20=E8=83=BD=E5=90=A6=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E5=BD=A2=E6=88=90=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eckArrayFormationThroughConcatenation.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/com/gatsby/_1640CheckArrayFormationThroughConcatenation.java diff --git a/src/com/gatsby/_1640CheckArrayFormationThroughConcatenation.java b/src/com/gatsby/_1640CheckArrayFormationThroughConcatenation.java new file mode 100644 index 0000000..3bc9996 --- /dev/null +++ b/src/com/gatsby/_1640CheckArrayFormationThroughConcatenation.java @@ -0,0 +1,30 @@ +package com.gatsby; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @classname _1640CheckArrayFormationThroughConcatenation + * @description: + * @author: gatsby + * @create: 2022/9/22 + **/ +public class _1640CheckArrayFormationThroughConcatenation { + public boolean canFormArray(int[] arr, int[][] pieces) { + Map map = new HashMap<>(); + + for (int[] piece : pieces) { + map.put(piece[0], piece); + } + + for (int i = 0; i < arr.length; ) { + if (!map.containsKey(arr[i])) return false; + int[] array = map.get(arr[i]); + for (int j = 0; j < array.length; ++j, ++i) { + if (arr[i] != array[j]) return false; + } + } + return true; + } +}