알고리즘/leetcode

[leetcode] Median of Two Sorted Arrays ( Java )

Yanoo 2021. 12. 9. 00:08
728x90
반응형

문제

leetcode Median of Two Sorted Arrays 풀이 ( 자바 )

 

풀이

생각해낸 방법이 우선순위큐에 저장하면서 총 사이즈를 저장하고 중간 지점의 데이터를 poll 할 때 평균을 구하려고 했다. 시간 복잡도가 빠를 것이라고 생각했지만 생각보다 느렸음.

public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        int size = 0;
        
        for(int i = 0; i < nums1.length; i++) {
            pq.add(nums1[i]);
            size += 1;
        }
        
        for(int i = 0; i < nums2.length; i++) {
            pq.add(nums2[i]);
            size += 1;
        }
        
        int cnt = 0;
        
        if(size % 2 == 0) {
            double ans = 0;
            for(int i = 0; i < size; i++) {
                double now = (double) pq.poll();
                if((i == (size/2)) || (i == ((size/2) - 1)))
                {
                    ans += now;
                }
            }
            System.out.println(ans);
            return (double) (ans / 2) ;
            
        } else {
            for(int i = 0; i < size; i++) {
                double now = (double) pq.poll();
                if(i == (size / 2)) {
                     return now;
                 }
            }

        }
        
        return 0;    
    }

 

그래서 다른 분 풀이를 봤는데 훨씬 빨랐다. 궁금하신 분은 확인해 보자 => link

728x90
반응형