Home Blog Coding Problem Practice

Find Nth Max or Largest element of unsorted array

Published:


arr = [7,2,1,3,10,4,5,8,9,6]
	nthMax = 2 #specify max element here
	maxArr = arr

	for i in range (0, len(maxArr)):
	    for j in range (i, len(maxArr)):
		if (maxArr[i] < maxArr[j]):
		    maxArr[i],maxArr[j] = maxArr[j],maxArr[i]
		    if i == nthMax:
			break

	print(maxArr)
	print(maxArr[nthMax-1])


-- java solution with Heap

package com.company;

import java.util.PriorityQueue;



class JavaTest {

    public static int findKthLargest(int[] nums, int k) {
        PriorityQueue q = new PriorityQueue(k);
        for(int i: nums){

            q.offer(i);

            if(q.size()>k){
                q.poll();
            }

        }

        return (int)q.peek();
    }

    public static void main (String[] args) throws java.lang.Exception
    {

        int[] arr = new int[]{7, 2, 1, 3, 10, 4, 5, 8, 9, 6};
        int k = 2;

        System.out.println(findKthLargest(arr, k));

    }
}
Comment