Grokking the Coding Interview: Patterns for Coding Questions
Ask Author
Back to course home

0% completed

Vote For New Content
 Deshapriya
Time Complexity 3N

Deshapriya

Jan 5, 2024

public static int sort(int[] arr) {

int min = Integer.MAX_VALUE;

    int max = Integer.MIN_VALUE;

    if (arr.length == 1) return 0; 

    for (int i = 0; i < arr.length; ++i) {

        if (i == 0) {

            if (arr[i] > arr[i + 1]) {

                min = Math.min(min, arr[i]);

                max = Math.max(max, arr[i]);

            }

        } else if (i == arr.length - 1) {

            if (arr[i] < arr[i - 1]) {

                min = Math.min(min, arr[i]);

                max = Math.max(max, arr[i]);

            }

        } else {

            if (arr[i] > arr[i + 1] || arr[i] < arr[i - 1]) {

                min = Math.min(min, arr[i]);

                max = Math.max(max, arr[i]);

            }

        }

    }

    if (min == Integer.MAX_VALUE && max == Integer.MIN_VALUE) {

      return 0;

    }

    int i = 0;

    int j = arr.length - 1;

    for (;i < arr.length && min >= arr[i]; i++);

    for (;j >= 0 && max <= arr[j]; j--);

    return (j - i) + 1;

}

0

0

Comments
Comments

On this page