Skip to content

Commit f5edc00

Browse files
committed
add matrix set zeros
1 parent b1efd5e commit f5edc00

5 files changed

Lines changed: 146 additions & 60 deletions

File tree

Algorithm Solutions In Swift.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
1F85E42E2F500D0F0097933E /* RecursiveBubbleSort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F85E42D2F500D060097933E /* RecursiveBubbleSort.swift */; };
2222
1F85E4312F500D2A0097933E /* RecusriveInsertionSort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F85E4302F500D210097933E /* RecusriveInsertionSort.swift */; };
2323
1F85E4362F5062490097933E /* SortedRotated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F85E4352F5062420097933E /* SortedRotated.swift */; };
24+
1F85E4392F52E2F70097933E /* SetZeros.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F85E4382F52E2F30097933E /* SetZeros.swift */; };
2425
6A09C87827EA646600BB9A38 /* MinRewards.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A09C87727EA646600BB9A38 /* MinRewards.swift */; };
2526
6A09C87B27EA690200BB9A38 /* BuySellStock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A09C87A27EA690200BB9A38 /* BuySellStock.swift */; };
2627
6A09C87C27EA690200BB9A38 /* BuySellStock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A09C87A27EA690200BB9A38 /* BuySellStock.swift */; };
@@ -334,6 +335,7 @@
334335
1F85E42D2F500D060097933E /* RecursiveBubbleSort.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecursiveBubbleSort.swift; sourceTree = "<group>"; };
335336
1F85E4302F500D210097933E /* RecusriveInsertionSort.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecusriveInsertionSort.swift; sourceTree = "<group>"; };
336337
1F85E4352F5062420097933E /* SortedRotated.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SortedRotated.swift; sourceTree = "<group>"; };
338+
1F85E4382F52E2F30097933E /* SetZeros.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetZeros.swift; sourceTree = "<group>"; };
337339
6A09C87727EA646600BB9A38 /* MinRewards.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MinRewards.swift; sourceTree = "<group>"; };
338340
6A09C87A27EA690200BB9A38 /* BuySellStock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuySellStock.swift; sourceTree = "<group>"; };
339341
6A09C87F27EBA43800BB9A38 /* SmallestSubstringAllCharacters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmallestSubstringAllCharacters.swift; sourceTree = "<group>"; };
@@ -620,6 +622,14 @@
620622
path = "Sorted and Rotated Array";
621623
sourceTree = "<group>";
622624
};
625+
1F85E4372F52E2EF0097933E /* Set Zeros Matrix */ = {
626+
isa = PBXGroup;
627+
children = (
628+
1F85E4382F52E2F30097933E /* SetZeros.swift */,
629+
);
630+
path = "Set Zeros Matrix";
631+
sourceTree = "<group>";
632+
};
623633
6A09C87627EA645400BB9A38 /* Min Rewards */ = {
624634
isa = PBXGroup;
625635
children = (
@@ -1235,6 +1245,7 @@
12351245
6A88CEE526C056A400A3746B /* LeetCode */ = {
12361246
isa = PBXGroup;
12371247
children = (
1248+
1F85E4372F52E2EF0097933E /* Set Zeros Matrix */,
12381249
1F85E4342F50623E0097933E /* Sorted and Rotated Array */,
12391250
1F85E42C2F500D010097933E /* Recursive Bubble Sort */,
12401251
6A6C59C92C4D78C9004309F7 /* Build a Matrix With Conditions */,
@@ -2832,6 +2843,7 @@
28322843
6A4364C327FC04B900F09D92 /* EncodeDecodeStrings.swift in Sources */,
28332844
6A9124492704842200D50C17 /* AddStrings.swift in Sources */,
28342845
6A91242E27023BCF00D50C17 /* ReverseString2.swift in Sources */,
2846+
1F85E4392F52E2F70097933E /* SetZeros.swift in Sources */,
28352847
6A651A3429070D2B000731BB /* PlusOne.swift in Sources */,
28362848
6A4364B427F7EFA600F09D92 /* ThreeSumSmaller.swift in Sources */,
28372849
6AF5789526A2E711007B37CA /* FindClosestValueInBST.swift in Sources */,
Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,43 @@
11
import Foundation
22

3-
func singleNumber1(_ nums: [Int]) -> Int {
4-
var x = nums[0]
5-
for i in 1..<nums.count {
6-
x = x^nums[i]
3+
4+
5+
func spiralOrder1(_ matrix: [[Int]]) -> [Int] {
6+
var startRow = 0
7+
var endRow = matrix.count - 1
8+
9+
var startCol = 0
10+
var endCol = matrix[0].count - 1
11+
12+
var traversed = [Int]()
13+
14+
while startRow <= endRow, startCol <= endCol {
15+
for col in stride(from: startCol, through: endCol, by: 1) {
16+
traversed.append(matrix[startRow][col])
17+
}
18+
19+
if startRow == endRow { break }
20+
21+
for row in stride(from: startRow + 1, through: endRow, by: 1) {
22+
traversed.append(matrix[row][endCol])
23+
}
24+
25+
if startCol == endCol { break }
26+
for col in stride(from: endCol - 1, through: startCol, by: -1) {
27+
traversed.append(matrix[endRow][col])
28+
}
29+
30+
for row in stride(from: endRow - 1, through: startRow + 1, by: -1) {
31+
traversed.append(matrix[row][startCol])
32+
}
33+
34+
startRow += 1
35+
endRow -= 1
36+
37+
startCol += 1
38+
endCol -= 1
739
}
8-
return x
40+
return traversed
941
}
10-
11-
var array = [2,2,1]//[0,0,1,1,1,2,2,3,3,4]
12-
print(singleNumber1(array))
42+
var array = [[1, 2, 3]]/*[[1,2,3,4],[5,6,7,8],[9,10,11,12]]*/
43+
print(spiralOrder1(array))
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//
2+
// SetZeros.swift
3+
// Algorithm Solutions In Swift
4+
//
5+
// Created by littlebanana on 28/02/26.
6+
//
7+
8+
//Problem Link: https://leetcode.com/problems/set-matrix-zeroes/
9+
10+
func setZeroes(_ matrix: inout [[Int]]) {
11+
var rows = Array(repeating: false, count: matrix.count)
12+
var columns = Array(repeating: false, count: matrix[0].count)
13+
14+
for i in 0..<matrix.count {
15+
for j in 0..<matrix[0].count {
16+
if matrix[i][j] == 0 {
17+
rows[i] = true
18+
columns[j] = true
19+
}
20+
}
21+
}
22+
23+
for i in 0..<matrix.count {
24+
for j in 0..<matrix[0].count {
25+
if rows[i] == true || columns[j] == true {
26+
matrix[i][j] = 0
27+
}
28+
}
29+
}
30+
}

README.md

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -113,32 +113,33 @@ Suggestions and contributions are welcome.
113113
|77|Search 2D Matrix|[Problem](https://leetcode.com/problems/search-a-2d-matrix/submissions/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Search%202D%20Matrix)|_|Matrix|_|
114114
|78|Search Insert Position|[Problem](https://leetcode.com/problemset/all/?search=Search%20Insert%20Position)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Search%20Insert%20Position)|_|Searching|_|
115115
|79|Search a 2D Matrix II|[Problem](https://leetcode.com/problemset/all/?search=Search%20a%202D%20Matrix%20II)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Search%20a%202D%20Matrix%20II)|_|Matrix|_|
116-
|80|Single Number|[Problem](https://leetcode.com/problemset/all/?search=Single%20Number)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Single%20Number)|_|_|_|
117-
|81|Sort An Array|[Problem](https://leetcode.com/problemset/all/?search=Sort%20An%20Array)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sort%20An%20Array)|_|Sorting|_|
118-
|82|Sort Colors|[Problem](https://leetcode.com/problemset/all/?search=Sort%20Colors)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sort%20Colors)|_|Sorting|_|
119-
|83|Sort by Parity|[Problem](https://leetcode.com/problemset/all/?search=Sort%20by%20Parity)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sort%20by%20Parity)|_|Sorting|_|
120-
|84|Sorted and Rotated Array|[Problem](https://leetcode.com/problems/check-if-array-is-sorted-and-rotated/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sorted%20and%20Rotated%20Array)|_|Sorting|_|
121-
|85|Spiral Matrix II|[Problem](https://leetcode.com/problemset/all/?search=Spiral%20Matrix%20II)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Spiral%20Matrix%20II)|_|Matrix|_|
122-
|86|Sprial Matrix|[Problem](https://leetcode.com/problemset/all/?search=Sprial%20Matrix)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sprial%20Matrix)|_|Matrix|_|
123-
|87|Squares of a Sorted Array|[Problem](https://leetcode.com/problemset/all/?search=Squares%20of%20a%20Sorted%20Array)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Squares%20of%20a%20Sorted%20Array)|_|Sorting|_|
124-
|88|String to Integer(atoi)|[Problem](https://leetcode.com/problemset/all/?search=String%20to%20Integer%28atoi%29)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/String%20to%20Integer%28atoi%29)|_|String|_|
125-
|89|Strings Multiply|[Problem](https://leetcode.com/problemset/all/?search=Strings%20Multiply)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Strings%20Multiply)|_|String|_|
126-
|90|Sub Array Sum Equals K|[Problem](https://leetcode.com/problemset/all/?search=Sub%20Array%20Sum%20Equals%20K)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sub%20Array%20Sum%20Equals%20K)|_|Array|_|
127-
|91|Subsets|[Problem](https://leetcode.com/problems/subsets/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Subsets)|_|_|_|
128-
|92|Symmetric Tree|[Problem](https://leetcode.com/problemset/all/?search=Symmetric%20Tree)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Symmetric%20Tree)|_|Tree|_|
129-
|93|Three Sum Smaller|[Problem](https://leetcode.com/problems/3sum-smaller/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Three%20Sum%20Smaller)|_|Array|_|
130-
|94|Three Sum Zero|[Problem](https://leetcode.com/problemset/all/?search=Three%20Sum%20Zero)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Three%20Sum%20Zero)|_|Array|_|
131-
|95|Top K Frequent Elements|[Problem](https://leetcode.com/problems/top-k-frequent-elements/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Top%20K%20Frequent%20Elements)|_|_|_|
132-
|96|Topological Sort|[Problem](https://leetcode.com/problemset/all/?search=Topological%20Sort)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Topological%20Sort)|_|Graph|_|
133-
|97|Two Number Sum - Sorted Input Array|[Problem](https://leetcode.com/problemset/all/?search=Two%20Number%20Sum%20-%20Sorted%20Input%20Array)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Two%20Number%20Sum%20-%20Sorted%20Input%20Array)|_|Sorting|_|
134-
|98|Unique Binary Search Tree 2|[Problem](https://leetcode.com/problems/unique-binary-search-trees-ii/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Unique%20Binary%20Search%20Tree%202)|_|Tree|_|
135-
|99|Unique Email Address|[Problem](https://leetcode.com/problemset/all/?search=Unique%20Email%20Address)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Unique%20Email%20Address)|_|_|_|
136-
|100|Valid Anagram|[Problem](https://leetcode.com/problems/valid-anagram/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Anagram)|_|String|_|
137-
|101|Valid Palindrome 2|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Palindrome%202)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Palindrome%202)|_|String|_|
138-
|102|Valid Parantheses|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Parantheses)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Parantheses)|_|_|_|
139-
|103|Valid Parentheses|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Parentheses)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Parentheses)|_|_|_|
140-
|104|Valid Suduku|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Suduku)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Suduku)|_|_|_|
141-
|105|Word Pattern|[Problem](https://leetcode.com/problemset/all/?search=Word%20Pattern)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Word%20Pattern)|_|String|_|
116+
|80|Set Zeros Matrix|[Problem](https://leetcode.com/problems/set-matrix-zeroes/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Set%20Zeros%20Matrix)|_|Matrix|_|
117+
|81|Single Number|[Problem](https://leetcode.com/problemset/all/?search=Single%20Number)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Single%20Number)|_|_|_|
118+
|82|Sort An Array|[Problem](https://leetcode.com/problemset/all/?search=Sort%20An%20Array)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sort%20An%20Array)|_|Sorting|_|
119+
|83|Sort Colors|[Problem](https://leetcode.com/problemset/all/?search=Sort%20Colors)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sort%20Colors)|_|Sorting|_|
120+
|84|Sort by Parity|[Problem](https://leetcode.com/problemset/all/?search=Sort%20by%20Parity)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sort%20by%20Parity)|_|Sorting|_|
121+
|85|Sorted and Rotated Array|[Problem](https://leetcode.com/problems/check-if-array-is-sorted-and-rotated/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sorted%20and%20Rotated%20Array)|_|Sorting|_|
122+
|86|Spiral Matrix II|[Problem](https://leetcode.com/problemset/all/?search=Spiral%20Matrix%20II)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Spiral%20Matrix%20II)|_|Matrix|_|
123+
|87|Sprial Matrix|[Problem](https://leetcode.com/problemset/all/?search=Sprial%20Matrix)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sprial%20Matrix)|_|Matrix|_|
124+
|88|Squares of a Sorted Array|[Problem](https://leetcode.com/problemset/all/?search=Squares%20of%20a%20Sorted%20Array)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Squares%20of%20a%20Sorted%20Array)|_|Sorting|_|
125+
|89|String to Integer(atoi)|[Problem](https://leetcode.com/problemset/all/?search=String%20to%20Integer%28atoi%29)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/String%20to%20Integer%28atoi%29)|_|String|_|
126+
|90|Strings Multiply|[Problem](https://leetcode.com/problemset/all/?search=Strings%20Multiply)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Strings%20Multiply)|_|String|_|
127+
|91|Sub Array Sum Equals K|[Problem](https://leetcode.com/problemset/all/?search=Sub%20Array%20Sum%20Equals%20K)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Sub%20Array%20Sum%20Equals%20K)|_|Array|_|
128+
|92|Subsets|[Problem](https://leetcode.com/problems/subsets/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Subsets)|_|_|_|
129+
|93|Symmetric Tree|[Problem](https://leetcode.com/problemset/all/?search=Symmetric%20Tree)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Symmetric%20Tree)|_|Tree|_|
130+
|94|Three Sum Smaller|[Problem](https://leetcode.com/problems/3sum-smaller/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Three%20Sum%20Smaller)|_|Array|_|
131+
|95|Three Sum Zero|[Problem](https://leetcode.com/problemset/all/?search=Three%20Sum%20Zero)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Three%20Sum%20Zero)|_|Array|_|
132+
|96|Top K Frequent Elements|[Problem](https://leetcode.com/problems/top-k-frequent-elements/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Top%20K%20Frequent%20Elements)|_|_|_|
133+
|97|Topological Sort|[Problem](https://leetcode.com/problemset/all/?search=Topological%20Sort)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Topological%20Sort)|_|Graph|_|
134+
|98|Two Number Sum - Sorted Input Array|[Problem](https://leetcode.com/problemset/all/?search=Two%20Number%20Sum%20-%20Sorted%20Input%20Array)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Two%20Number%20Sum%20-%20Sorted%20Input%20Array)|_|Sorting|_|
135+
|99|Unique Binary Search Tree 2|[Problem](https://leetcode.com/problems/unique-binary-search-trees-ii/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Unique%20Binary%20Search%20Tree%202)|_|Tree|_|
136+
|100|Unique Email Address|[Problem](https://leetcode.com/problemset/all/?search=Unique%20Email%20Address)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Unique%20Email%20Address)|_|_|_|
137+
|101|Valid Anagram|[Problem](https://leetcode.com/problems/valid-anagram/)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Anagram)|_|String|_|
138+
|102|Valid Palindrome 2|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Palindrome%202)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Palindrome%202)|_|String|_|
139+
|103|Valid Parantheses|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Parantheses)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Parantheses)|_|_|_|
140+
|104|Valid Parentheses|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Parentheses)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Parentheses)|_|_|_|
141+
|105|Valid Suduku|[Problem](https://leetcode.com/problemset/all/?search=Valid%20Suduku)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Valid%20Suduku)|_|_|_|
142+
|106|Word Pattern|[Problem](https://leetcode.com/problemset/all/?search=Word%20Pattern)|[Solution](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/LeetCode/Word%20Pattern)|_|String|_|
142143
<!-- AUTO:END:LEETCODE -->
143144

144145
### [AlgoExpert](https://github.com/boudhayan/Algorithm-Solutions-In-Swift/tree/main/AlgoExpert/)

0 commit comments

Comments
 (0)