Skip to content

Commit bdafa23

Browse files
authored
Merge pull request #2395 from t3chkid/main
Add Kotlin solution for 918. Maximum Sum Circular Subarray
2 parents 7fc86ea + f42af9c commit bdafa23

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ If you would like to have collaborator permissions on the repo to merge your own
374374
<sub>Problem</sub> | <sub>C</sub> | <sub>C++</sub> | <sub>C#</sub> | <sub>Dart</sub> | <sub>GO</sub> | <sub>Java</sub> | <sub>JS</sub> | <sub>Kotlin</sub> | <sub>Python</sub> | <sub>Ruby</sub> | <sub>Rust</sub> | <sub>Scala</sub> | <sub>Swift</sub> | <sub>TS</sub>
375375
---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ----
376376
<sub>[0053 - Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)</sub> | <sub><div align='center'>[✔️](c%2F0053-maximum-subarray.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0053-maximum-subarray.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0053-maximum-subarray.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0053-maximum-subarray.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0053-maximum-subarray.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0053-maximum-subarray.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0053-maximum-subarray.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0053-maximum-subarray.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0053-maximum-subarray.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0053-maximum-subarray.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0053-maximum-subarray.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0053-maximum-subarray.ts)</div></sub>
377-
<sub>[0918 - Maximum Sum Circular Subarray](https://leetcode.com/problems/maximum-sum-circular-subarray/)</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%2F0918-maximum-sum-circular-subarray.go)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](javascript%2F0918-maximum-sum-circular-subarray.js)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>[✔️](python%2F0918-maximum-sum-circular-subarray.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0918-maximum-sum-circular-subarray.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0918-maximum-sum-circular-subarray.ts)</div></sub>
377+
<sub>[0918 - Maximum Sum Circular Subarray](https://leetcode.com/problems/maximum-sum-circular-subarray/)</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%2F0918-maximum-sum-circular-subarray.go)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](javascript%2F0918-maximum-sum-circular-subarray.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0918-maximum-sum-circular-subarray.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0918-maximum-sum-circular-subarray.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0918-maximum-sum-circular-subarray.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0918-maximum-sum-circular-subarray.ts)</div></sub>
378378
<sub>[0055 - Jump Game](https://leetcode.com/problems/jump-game/)</sub> | <sub><div align='center'>[✔️](c%2F0055-jump-game.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0055-jump-game.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0055-jump-game.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0055-jump-game.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0055-jump-game.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0055-jump-game.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0055-jump-game.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0055-jump-game.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0055-jump-game.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0055-jump-game.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0055-jump-game.ts)</div></sub>
379379
<sub>[0045 - Jump Game II](https://leetcode.com/problems/jump-game-ii/)</sub> | <sub><div align='center'>[✔️](c%2F0045-jump-game-ii.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0045-jump-game-ii.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0045-jump-game-ii.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0045-jump-game-ii.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0045-jump-game-ii.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0045-jump-game-ii.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0045-jump-game-ii.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0045-jump-game-ii.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0045-jump-game-ii.rb)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0045-jump-game-ii.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0045-jump-game-ii.ts)</div></sub>
380380
<sub>[1871 - Jump Game VII](https://leetcode.com/problems/jump-game-vii/)</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>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
fun maxSubarraySumCircular(nums: IntArray): Int {
3+
if (nums.size == 1) return nums[0]
4+
// max sum
5+
var totalSum = nums[0]
6+
var maxSum = nums[0]
7+
var currentMaxSum = nums[0]
8+
// minSum
9+
var minSum = nums[0]
10+
var currentMinSum = nums[0]
11+
for (i in 1..nums.lastIndex) {
12+
// max sum computation
13+
currentMaxSum = maxOf(nums[i], currentMaxSum + nums[i])
14+
maxSum = maxOf(maxSum, currentMaxSum)
15+
// minSum computation
16+
currentMinSum = minOf(nums[i], currentMinSum + nums[i])
17+
minSum = minOf(minSum, currentMinSum)
18+
totalSum += nums[i]
19+
}
20+
return if (minSum != totalSum) maxOf((totalSum - minSum), maxSum) else maxSum
21+
}
22+
}

0 commit comments

Comments
 (0)