Skip to content

Commit 6463722

Browse files
authored
Merge branch 'neetcode-gh:main' into patch-1
2 parents c789f46 + 0e72282 commit 6463722

5 files changed

+117
-4
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ If you would like to have collaborator permissions on the repo to merge your own
355355
<sub>[1143 - Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F1143-Longest-Common-Subsequence.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F1143-Longest-Common-Subsequence.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F1143-Longest-Common-Subsequence.go)</div></sub> | <sub><div align='center'>[✔️](java%2F1143-Longest-Common-Subsequence.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F1143-Longest-Common-Subsequence.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F1143-Longest-Common-Subsequence.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F1143-longest-common-subsequence.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F1143-Longest-Common-Subsequence.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F1143-Longest-Common-Subsequence.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F1143-Longest-Common-Subsequence.ts)</div></sub>
356356
<sub>[0309 - Best Time to Buy And Sell Stock With Cooldown](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/)</sub> | <sub><div align='center'>[✔️](c%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0309-best-time-to-buy-and-sell-stock-with-cooldown.ts)</div></sub>
357357
<sub>[0518 - Coin Change II](https://leetcode.com/problems/coin-change-ii/)</sub> | <sub><div align='center'>[✔️](c%2F0518-coin-change-ii.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0518-coin-change-ii.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0518-coin-change-ii.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0518-coin-change-ii.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0518-coin-change-ii.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0518-coin-change-ii.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0518-coin-change-ii.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0518-coin-change-ii.ts)</div></sub>
358-
<sub>[0494 - Target Sum](https://leetcode.com/problems/target-sum/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0494-target-sum.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0494-target-sum.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0494-target-sum.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0494-target-sum.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0494-target-sum.js)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>[✔️](python%2F0494-target-sum.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0494-target-sum.ts)</div></sub>
358+
<sub>[0494 - Target Sum](https://leetcode.com/problems/target-sum/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0494-target-sum.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0494-target-sum.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0494-target-sum.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0494-target-sum.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0494-target-sum.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0494-target-sum.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0494-target-sum.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0494-target-sum.ts)</div></sub>
359359
<sub>[0097 - Interleaving String](https://leetcode.com/problems/interleaving-string/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0097-interleaving-string.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0097-interleaving-string.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0097-interleaving-string.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0097-interleaving-string.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0097-interleaving-string.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0097-interleaving-string.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0097-interleaving-string.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](scala%2F0097-interleaving-string.scala)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0097-interleaving-string.ts)</div></sub>
360360
<sub>[0877 - Stone Game](https://leetcode.com/problems/stone-game/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
361361
<sub>[0064 - Minimum Path Sum](https://leetcode.com/problems/minimum-path-sum/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0064-minimum-path-sum.cpp)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0064-minimum-path-sum.java)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0064-minimum-path-sum.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0064-minimum-path-sum.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
@@ -382,7 +382,7 @@ If you would like to have collaborator permissions on the repo to merge your own
382382
<sub>[0846 - Hand of Straights](https://leetcode.com/problems/hand-of-straights/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0846-hand-of-straights.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0846-hand-of-straights.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0846-hand-of-straights.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0846-hand-of-straights.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0846-hand-of-straights.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0846-hand-of-straights.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0846-hand-of-straights.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0846-hand-of-straights.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0846-hand-of-straights.ts)</div></sub>
383383
<sub>[1423 - Maximum Points You Can Obtain From Cards](https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](csharp%2F1423-Maximum-Points-You-Can-Obtain-from-Cards.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F1423-maximum-points-you-can-obtain-from-cards.kt)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
384384
<sub>[1899 - Merge Triplets to Form Target Triplet](https://leetcode.com/problems/merge-triplets-to-form-target-triplet/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F1899-merge-triplets-to-form-target-triplet.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F1899-Merge-Triplets-to-Form-Target-Triplet.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F1899-merge-triplets-to-form-target-triplet.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F1899-merge-triplets-to-form-target-triplet.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F1899-merge-triplets-to-form-target-triplet.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F1899-merge-triplets-to-form-target-triplet.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F1899-merge-triplets-to-form-target-triplet.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F1899-Merge-Triplets-To-Form-Target-Triplet.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F1899-Merge-Triplets-to-Form-Target-Triplet.ts)</div></sub>
385-
<sub>[0763 - Partition Labels](https://leetcode.com/problems/partition-labels/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0763-partition-labels.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0763-partition-labels.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0763-partition-labels.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0763-partition-labels.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0763-partition-labels.js)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>[✔️](python%2F0763-partition-labels.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0763-partition-labels.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
385+
<sub>[0763 - Partition Labels](https://leetcode.com/problems/partition-labels/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0763-partition-labels.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0763-partition-labels.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0763-partition-labels.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0763-partition-labels.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0763-partition-labels.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0763-partition-labels.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0763-partition-labels.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0763-partition-labels.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
386386
<sub>[0678 - Valid Parenthesis String](https://leetcode.com/problems/valid-parenthesis-string/)</sub> | <sub><div align='center'>[✔️](c%2F0678-valid-parenthesis-string.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0678-valid-parenthesis-string.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0678-valid-parenthesis-string.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0678-valid-parenthesis-string.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0678-valid-parenthesis-string.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0678-valid-parenthesis-string.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0678-valid-parenthesis-string.ts)</div></sub>
387387
<sub>[1921 - Eliminate Maximum Number of Monsters](https://leetcode.com/problems/eliminate-maximum-number-of-monsters/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
388388
<sub>[1029 - Two City Scheduling](https://leetcode.com/problems/two-city-scheduling/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F1029-two-city-scheduling.go)</div></sub> | <sub><div align='center'>[✔️](java%2F1029-two-city-scheduling.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F1029-two-city-scheduling.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F1029-two-city-scheduling.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F1029-two-city-scheduling.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F1029-two-city-scheduling.ts)</div></sub>

kotlin/0494-target-sum.kt

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
fun findTargetSumWays(nums: IntArray, target: Int): Int {
3+
val memo = HashMap<String, Int>()
4+
5+
fun dfs(i: Int, sum: Int): Int {
6+
if (i == nums.size)
7+
return if (sum == target) 1 else 0
8+
val key = "$i:$sum"
9+
if (key in memo)
10+
return memo[key]!!
11+
memo[key] = dfs(i + 1, sum + nums[i]) +
12+
dfs(i + 1, sum - nums[i])
13+
return memo[key]!!
14+
}
15+
16+
return dfs(0, 0)
17+
}
18+
}

kotlin/0649-dota2-senate.kt

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
fun predictPartyVictory(senate: String): String {
3+
val rQ = LinkedList<Int>()
4+
val dQ = LinkedList<Int>()
5+
val n = senate.length
6+
7+
for (i in senate.indices) {
8+
if (senate[i] == 'R') rQ.addLast(i)
9+
else dQ.addLast(i)
10+
}
11+
12+
while (rQ.isNotEmpty() && dQ.isNotEmpty()) {
13+
val r = rQ.removeFirst()
14+
val d = dQ.removeFirst()
15+
16+
if (r < d) rQ.addLast(r + n)
17+
else dQ.addLast(d + n)
18+
}
19+
20+
return if (rQ.isEmpty()) "Dire" else "Radiant"
21+
}
22+
}

kotlin/0763-partition-labels.kt

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
fun partitionLabels(s: String): List<Int> {
3+
if (s.length == 1) return listOf(1)
4+
val lastIndexOfChar = mutableMapOf<Char, Int>().apply {
5+
s.forEachIndexed { index, char -> this[char] = index }
6+
}
7+
val partitions = mutableListOf<Int>()
8+
var l = 0
9+
while (l in s.indices) {
10+
// keep moving l to find the first char that has a last occurrence greater than l
11+
while (l == lastIndexOfChar[s[l]]) {
12+
// if l is at the one-and-only occurrence of the char s[l], make a partition and move l
13+
partitions.add(1)
14+
l++
15+
if (l > s.lastIndex) return partitions
16+
}
17+
18+
var r = lastIndexOfChar.getValue(s[l])
19+
var j = l + 1
20+
while (j <= r) {
21+
if (lastIndexOfChar.getValue(s[j]) <= r){
22+
j++
23+
continue
24+
}
25+
r = lastIndexOfChar.getValue(s[j])
26+
j++
27+
}
28+
partitions.add((r - l) + 1)
29+
l = r + 1
30+
}
31+
return partitions
32+
}
33+
}

kotlin/1466-reorder-routes-to-make-all-paths-lead-to-the-city-zero.kt

+42-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,47 @@
1-
package kotlin
1+
/*
2+
* DFS Solution
3+
*/
4+
class Solution {
5+
fun minReorder(n: Int, connections: Array<IntArray>): Int {
6+
7+
val neighbors = ArrayList<ArrayList<Int>>().apply {
8+
for (i in 0 until n)
9+
this.add(ArrayList<Int>())
10+
for ((u,v) in connections) {
11+
this.get(u).apply { this.add(v) }
12+
this.get(v).apply { this.add(u) }
13+
}
14+
}
15+
16+
val edges = HashSet<String>().apply {
17+
for ((u,v) in connections)
18+
this.add("$u:$v")
19+
}
220

3-
import java.util.LinkedList
21+
var changes = 0
22+
val visited = BooleanArray(n)
23+
24+
fun dfs(n: Int) {
25+
for (nei in neighbors[n]) {
26+
if (visited[nei] == true)
27+
continue
28+
if ("$nei:$n" !in edges)
29+
changes++
30+
visited[nei] = true
31+
dfs(nei)
32+
}
33+
}
34+
35+
visited[0] = true
36+
dfs(0)
37+
38+
return changes
39+
}
40+
}
441

42+
/*
43+
* BFS Solution
44+
*/
545
class Solution {
646
fun minReorder(n: Int, connections: Array<IntArray>): Int {
747
// node -> (adjacentNode,isArtificialEdge)

0 commit comments

Comments
 (0)