702786. Elements before which no element is bigger

Basic

Elements before which no element is bigger

Summary

Given an array of integers, find all elements that come before another element in the same array. In other words, find the elements whose next larger element (NLE) is smaller than itself.

This problem involves arrays and data structures, requiring a thorough understanding of algorithms to solve efficiently.

Detailed Explanation

To solve this problem, we will iterate through the array and keep track of the NLE for each element. When we encounter an element that is smaller than its previous NLE, it means there are no elements larger than itself before it. We can store these elements in a separate data structure (such as a list or set) to return them as our final result.

Here's a step-by-step breakdown of the solution:

  1. Initialize an empty list result to store the elements that come before another element with a smaller NLE.
  2. Iterate through the array from left to right, considering each element as a potential NLE for the next larger element.
  3. For each element, check if its previous element (if it exists) is smaller than itself. If not, add the current element to result.
  4. Repeat step 2 and 3 until the end of the array.

Time complexity: O(n), where n is the length of the input array. We only need to iterate through the array once, so the time complexity is linear. Space complexity: O(n), since we store the elements in the result list.

Optimized Solutions

Java

View on GeeksforGeeks
import java.util.*;

public class Solution {
    public List<Integer> findElements(int[] arr) {
        List<Integer> result = new ArrayList<>();
        for (int i = 0; i < arr.length; i++) {
            if (i > 0 && arr[i] < arr[i - 1]) {
                result.add(arr[i]);
            }
        }
        return result;
    }
}

DevExCode

Master coding interviews with Leetcode, system design, TechBit, QuickLearn, DevTips, Tech Battles, and career services.

© 2026 DevExCode. All rights reserved.