-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1299.ReplaceElements.cs
35 lines (32 loc) · 1.3 KB
/
1299.ReplaceElements.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 1299. Replace Elements with Greatest Element on Right Side
// Given an array arr, replace every element in that array with the greatest element among the elements to its right, and replace the last element with -1.
// After doing so, return the array.
// Example 1:
// Input: arr = [17,18,5,4,6,1]
// Output: [18,6,6,6,1,-1]
// Explanation:
// - index 0 --> the greatest element to the right of index 0 is index 1 (18).
// - index 1 --> the greatest element to the right of index 1 is index 4 (6).
// - index 2 --> the greatest element to the right of index 2 is index 4 (6).
// - index 3 --> the greatest element to the right of index 3 is index 4 (6).
// - index 4 --> the greatest element to the right of index 4 is index 5 (1).
// - index 5 --> there are no elements to the right of index 5, so we put -1.
// Example 2:
// Input: arr = [400]
// Output: [-1]
// Explanation: There are no elements to the right of index 0.
// Constraints:
// 1 <= arr.length <= 104
// 1 <= arr[i] <= 105
//Similar to Leader Election
public class Solution {
public int[] ReplaceElements(int[] arr) {
int[] result = new int[arr.Length];
int leader = -1;
for(int i = arr.Length-1; i>=0; i--){
result[i] = leader;
leader = Math.Max(leader, arr[i]);
}
return result;
}
}