Google Mock Interview: #3

Flower Planting With No Adjacent

class Solution {
    public int[] gardenNoAdj(int n, int[][] paths) {
        Queue<Integer> flowers = new LinkedList<Integer>();
        
        Queue<int[]> ps = new PriorityQueue<int[]>((n1, n2) -> (n1[0] - n2[0]));
        
        
        for (int[] p: paths) {
            if (p[0] > p[1]) {
                int temp = p[1];
                p[1] = p[0];
                p[0] = temp;
            }
            
            ps.add(p);
        }
        
        int[] result = new int[n];
        
        while (! ps.isEmpty()) {
            int[] gar = ps.poll();
            
            int first = flowers.remove();
            result[gar[0]] = first;
            flowers.offer(first);
            int second = flowers.remove();
            result[gar[1]] = second;
            
            while (ps.peek()[0] == gar[0]) {
                int[] gar2 = ps.remove();
                result[gar2[1]] = second;
            }
            
            flowers.offer(second); 
        }
        
        return result; 
    }
}

Letter Tile Possibilities

저 이거 100% 풀진 못했는데 써놓은게 있었거든요.. ㄱㄴ데 가든에 심취해서 실수로 여기에다까지 가든 베껴놔서 없어짐요;;;;;;;;; 어이가 없네요

좋은 웹페이지 즐겨찾기