diff --git a/DIRECTORY.md b/DIRECTORY.md index 150e4e61ea06..6511a2c50c83 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -241,6 +241,7 @@ * [Kth Largest Element](data_structures/arrays/kth_largest_element.py) * [Median Two Array](data_structures/arrays/median_two_array.py) * [Monotonic Array](data_structures/arrays/monotonic_array.py) + * [Next Greater Element](data_structures/arrays/next_greater_element.py) * [Pairs With Given Sum](data_structures/arrays/pairs_with_given_sum.py) * [Permutations](data_structures/arrays/permutations.py) * [Prefix Sum](data_structures/arrays/prefix_sum.py) @@ -986,6 +987,7 @@ * [Doppler Frequency](physics/doppler_frequency.py) * [Escape Velocity](physics/escape_velocity.py) * [Grahams Law](physics/grahams_law.py) + * [Hamiltonian](physics/hamiltonian.py) * [Horizontal Projectile Motion](physics/horizontal_projectile_motion.py) * [Hubble Parameter](physics/hubble_parameter.py) * [Ideal Gas Law](physics/ideal_gas_law.py) diff --git a/data_structures/arrays/next_greater_element.py b/data_structures/arrays/next_greater_element.py new file mode 100644 index 000000000000..4532aa219322 --- /dev/null +++ b/data_structures/arrays/next_greater_element.py @@ -0,0 +1,21 @@ +# Program to find the Next Greater Element (NGE) for each element in the array + +arr = [4, 5, 2, 25, 7, 8] +n = len(arr) + +print("Original array:", arr) + +# List to store results, default is -1 for elements with no greater element +nge = [-1] * n + +# Outer loop for each element +for i in range(n): + # Inner loop to find the next greater element + for j in range(i + 1, n): + if arr[j] > arr[i]: + nge[i] = arr[j] + break # Stop once the next greater is found + +# Print result +for i in range(n): + print(f"Next Greater Element for {arr[i]} is {nge[i]}")