From 36a0c63b542be5eeb614f4cb25ffb767e068deba Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Thu, 16 May 2024 07:36:41 +0100 Subject: [PATCH] Swift Implementation for LCCI 17.24 --- lcci/17.24.Max Submatrix/README.md | 43 +++++++++++++++++++++++++ lcci/17.24.Max Submatrix/README_EN.md | 43 +++++++++++++++++++++++++ lcci/17.24.Max Submatrix/Solution.swift | 40 +++++++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 lcci/17.24.Max Submatrix/Solution.swift diff --git a/lcci/17.24.Max Submatrix/README.md b/lcci/17.24.Max Submatrix/README.md index c87ef19fb7c47..ace63531dab21 100644 --- a/lcci/17.24.Max Submatrix/README.md +++ b/lcci/17.24.Max Submatrix/README.md @@ -190,6 +190,49 @@ func getMaxMatrix(matrix [][]int) []int { } ``` +```swift +class Solution { + func getMaxMatrix(_ matrix: [[Int]]) -> [Int] { + let m = matrix.count, n = matrix[0].count + var s = Array(repeating: Array(repeating: 0, count: n), count: m + 1) + + for i in 0.. 0 { + f += nums[j] + } else { + f = nums[j] + start = j + } + if f > mx { + mx = f + ans = [i1, start, i2, j] + } + } + } + } + return ans + } +} +``` + diff --git a/lcci/17.24.Max Submatrix/README_EN.md b/lcci/17.24.Max Submatrix/README_EN.md index 9275c03550032..d88832c366e8b 100644 --- a/lcci/17.24.Max Submatrix/README_EN.md +++ b/lcci/17.24.Max Submatrix/README_EN.md @@ -195,6 +195,49 @@ func getMaxMatrix(matrix [][]int) []int { } ``` +```swift +class Solution { + func getMaxMatrix(_ matrix: [[Int]]) -> [Int] { + let m = matrix.count, n = matrix[0].count + var s = Array(repeating: Array(repeating: 0, count: n), count: m + 1) + + for i in 0.. 0 { + f += nums[j] + } else { + f = nums[j] + start = j + } + if f > mx { + mx = f + ans = [i1, start, i2, j] + } + } + } + } + return ans + } +} +``` + diff --git a/lcci/17.24.Max Submatrix/Solution.swift b/lcci/17.24.Max Submatrix/Solution.swift new file mode 100644 index 0000000000000..b13b651ddf02c --- /dev/null +++ b/lcci/17.24.Max Submatrix/Solution.swift @@ -0,0 +1,40 @@ +class Solution { + func getMaxMatrix(_ matrix: [[Int]]) -> [Int] { + let m = matrix.count, n = matrix[0].count + var s = Array(repeating: Array(repeating: 0, count: n), count: m + 1) + + for i in 0.. 0 { + f += nums[j] + } else { + f = nums[j] + start = j + } + if f > mx { + mx = f + ans = [i1, start, i2, j] + } + } + } + } + return ans + } +} \ No newline at end of file