033 Shuffle The Pieces

    科技2023-12-25  84

    given two arrays, arr and pieces arr is a one dimension array and pieces is a higher dimension array.

    example: arr: [1,2,5,3] pieces = [[5],[1,2],[3]]

    and we need to write a function to check whether if we only all the pieces can we form an original arr.

    public class ShuffleThePieces { public ShuffleThePieces() { } public int[] solution(int[][] arraies, int[] path) { Map<Integer, Integer> map = new HashMap(); Map<Integer, Integer> mapB = new HashMap(); for(int i = 0; i < path.length; ++i) { map.put(path[i], 0); mapB.put(path[i], 0); } int[][] var11 = arraies; int var6 = arraies.length; int start; int key; for(start = 0; start < var6; ++start) { int[] array = var11[start]; if ((Integer)map.get(array[1]) == 1 || (Integer)mapB.get(array[0]) == 1) { //we can compare Integer to int directly. key = array[1]; array[1] = array[0]; array[0] = key; } map.put(array[1], 1); mapB.put(array[0], 1); } int[] res = new int[path.length]; Map<Integer, Integer> trace = new HashMap(); int[][] var14 = arraies; int index = arraies.length; for(key = 0; key < index; ++key) { int[] array = var14[key]; trace.put(array[0], array[1]); } start = 0; Iterator var16 = map.keySet().iterator(); while(var16.hasNext()) { key = (Integer)var16.next(); if ((Integer)map.get(key) == 0) { start = key; } } for(index = 0; trace.containsKey(start); ++index) { res[index] = start; start = (Integer)trace.get(start); } res[index] = start; return res; } public static void main(String[] args) { int[][] arries = new int[][]{{3, 1}, {5, 3}, {5, 7}, {7, 4}, {9, 4}}; int[] path = new int[]{1, 3, 5, 7, 4, 9}; ShuffleThePieces st = new ShuffleThePieces(); int[] res = st.solution(arries, path); for(int i = 0; i < res.length; ++i) { System.out.print(res[i]); System.out.print(" "); } } }
    Processed: 0.011, SQL: 9