Skip to content

Commit 1dc7597

Browse files
author
Akash Rajpurohit
committed
🤾 Day 29
1 parent 08a9025 commit 1dc7597

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@
3131
6. [Search in Rotated Sorted Array II](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/566/week-3-november-15th-november-21st/3537/) ➡️ [CPP Solution](Week3/search.cpp)
3232
7. [Numbers At Most N Given Digit Set](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/566/week-3-november-15th-november-21st/3538/) ➡️ [CPP Solution](Week3/atMostNGivenDigitSet.cpp)
3333

34-
## Week 4 🚧
34+
## Week 4
3535
1. [Unique Morse Code Words](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3540/) ➡️ [CPP Solution](Week4/uniqueMorseRepresentations.cpp)
3636
2. [House Robber III](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3541/) ➡️ [CPP Solution](Week4/rob.cpp)
3737
3. [Basic Calculator II](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3542/) ➡️ [CPP Solution](Week4/calculate.cpp)
3838
4. [Smallest Integer Divisible by K](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3543/) ➡️ [CPP Solution](Week4/smallestRepunitDivByK.cpp)
3939
5. [Longest Substring with At Least K Repeating Characters](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3544/) ➡️ [CPP Solution](Week4/longestSubstring.cpp)
40-
6. [Partition Equal Subset Sum](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3544/) ➡️ [CPP Solution](Week4/canPartition.cpp)
41-
7. [Sliding Window Maximum](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3544/) ➡️ [CPP Solution](Week4/maxSlidingWindow.cpp)
40+
6. [Partition Equal Subset Sum](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3545/) ➡️ [CPP Solution](Week4/canPartition.cpp)
41+
7. [Sliding Window Maximum](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/567/week-4-november-22nd-november-28th/3546/) ➡️ [CPP Solution](Week4/maxSlidingWindow.cpp)
4242

4343
## Week 5 🚧
44-
Coming soon...
44+
1. [Jump Game III](https://leetcode.com/explore/challenge/card/november-leetcoding-challenge/568/week-5-november-29th-november-30th/3548/) ➡️ [CPP Solution](Week5/canReach.cpp)
4545

4646
## Other Challenges 💪
4747

Week5/canReach.cpp

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class Solution {
2+
private:
3+
bool canReachHelper(vector<int>& arr, int start, unordered_map<int, bool>& dp, unordered_set<int>& inStack) {
4+
if(start < 0 || start >= arr.size())
5+
return false;
6+
7+
if(arr[start] == 0)
8+
return true;
9+
10+
if(inStack.count(start) > 0)
11+
return false;
12+
13+
if(dp.count(start) > 0)
14+
return dp[start];
15+
16+
17+
inStack.insert(start);
18+
19+
bool left = canReachHelper(arr, start - arr[start], dp, inStack);
20+
bool right = left || canReachHelper(arr, start + arr[start], dp, inStack);
21+
22+
dp[start] = left || right;
23+
inStack.erase(start);
24+
25+
return dp[start];
26+
}
27+
public:
28+
bool canReach(vector<int>& arr, int start) {
29+
unordered_map<int, bool> dp;
30+
unordered_set<int> inStack;
31+
32+
return canReachHelper(arr, start, dp, inStack);
33+
}
34+
};

0 commit comments

Comments
 (0)