Skip to content

Commit 3e94a60

Browse files
committed
471/500 problems solved
1 parent 6f17019 commit 3e94a60

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed

Beautiful_Arrangement.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
int countArrangement(int indx, int mask, const int N, vector<vector<int>>& dp) {
3+
if(indx > N) {
4+
return 1;
5+
}
6+
if(dp[indx][mask] != -1) {
7+
return dp[indx][mask];
8+
}
9+
int ret = 0;
10+
for(int i = 1; i <= N; i++) {
11+
if(!(mask & (1 << i)) and (indx % i == 0 or i % indx == 0)) {
12+
ret += countArrangement(indx + 1, mask | (1 << i), N, dp);
13+
}
14+
}
15+
return dp[indx][mask] = ret;
16+
}
17+
18+
public:
19+
int countArrangement(int N) {
20+
vector<vector<int>> dp(N + 1, vector<int>((1 << N) << 1, -1));
21+
return countArrangement(1, 0, N, dp);
22+
}
23+
};

Contiguous_Array.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
int findMaxLength(vector<int>& arr) {
4+
unordered_map<int, int> dp;
5+
int one = 0, zero = 0;
6+
dp[0] = -1;
7+
int result = 0;
8+
for(int i = 0; i < (int)arr.size(); i++) {
9+
one += arr[i];
10+
zero += !arr[i];
11+
if(dp.count(one - zero)) {
12+
result = max(result, i - dp[one - zero]);
13+
} else {
14+
dp[one - zero] = i;
15+
}
16+
}
17+
18+
return result;
19+
}
20+
};

Detect_Capital.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
public:
3+
bool detectCapitalUse(string word) {
4+
int n = (int)word.length();
5+
if(n <= 1) return true;
6+
bool firstUpper = false;
7+
if(isupper(word[0])) {
8+
firstUpper = true;
9+
}
10+
bool allUpper = true, allLower = true;
11+
for(int i = 1; i < n; i++) {
12+
if(isupper(word[i])) {
13+
allLower = false;
14+
} else {
15+
allUpper = false;
16+
}
17+
}
18+
if(!allUpper and !allLower) {
19+
return false;
20+
}
21+
if(firstUpper) {
22+
return true;
23+
}
24+
return allLower;
25+
}
26+
};

0 commit comments

Comments
 (0)