-
Notifications
You must be signed in to change notification settings - Fork 0
/
Maximum number
42 lines (39 loc) · 1.02 KB
/
Maximum number
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
36
37
38
39
40
41
42
class Solution {
public:
vector<int> findDifferenceArray(int N, vector<int> &a) {
int n = N ;
vector <int> ans(n, 0) ;
if(n == 1)
return ans;
vector <int> lmin(N, 0) ;
vector <int> rmin(N, 0) ;
lmin[0] = a[0] ;
rmin[n - 1] = a[n - 1] ;
for(int i = 1 ; i < N ; i++)
{
lmin[i] = min(a[i] , lmin[i - 1]) ;
}
for(int i = n - 2; i >= 0 ; i--)
{
rmin[i] = min(a[i] , rmin[i + 1]) ;
}
for(int i = 1 ; i < n - 1 ; i++)
{
ans[i] = lmin[i - 1] - rmin[i + 1] ;
}
// for(int i = 0 ; i < n ; i++)
// {
// cout << lmin[i] << " " ;
// }
// cout << endl ;
// for(int i = 0 ; i < n ; i++)
// {
// cout << rmin[i] << " " ;
// }
// cout << endl ;
ans[0] = 0 - rmin[1] ;
ans[n - 1] = lmin[n - 2] - 0 ;
return ans ;
// code here
}
};