Skip to content

Commit 59db021

Browse files
authored
Create 10 May Longest Subarray with Majority Greater than K (#791)
2 parents f1477c8 + 3a60ca7 commit 59db021

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
public:
3+
int longestSubarray(vector<int> &arr, int k) {
4+
int n=arr.size();
5+
vector<int>diff(n);
6+
for(int i=0;i<n;i++){
7+
if(arr[i]>k){
8+
diff[i]=1;
9+
}
10+
else{
11+
diff[i]=-1;
12+
}
13+
}
14+
unordered_map<int,int>mp;
15+
int prefix=0;
16+
int maxlen=0;
17+
for(int i=0;i<n;i++){
18+
prefix+=diff[i];
19+
if(prefix>0){
20+
maxlen=i+1;
21+
}
22+
else{
23+
if(mp.find(prefix-1)!=mp.end()){
24+
maxlen=max(maxlen,i-mp[prefix-1]);
25+
}
26+
}
27+
if(mp.find(prefix)==mp.end()){
28+
mp[prefix]=i;
29+
}
30+
}
31+
return maxlen;
32+
}
33+
};

0 commit comments

Comments
 (0)