diff --git a/Array/ContainsDuplicateII.swift b/Array/ContainsDuplicateII.swift index 8a820f08..1bca20f6 100644 --- a/Array/ContainsDuplicateII.swift +++ b/Array/ContainsDuplicateII.swift @@ -16,7 +16,7 @@ class ContainsDuplicateII { // key: nums[index], value: index var dict = [Int: Int]() - for i in 0 ..< nums.count { + for i in 0.. [[Int]] { - let nums = nums.sort({$0 < $1}) + func fourSum(_ nums: [Int], _ target: Int) -> [[Int]] { + let nums = nums.sorted(by: <) var threeSum = 0 var twoSum = 0 var left = 0 @@ -18,13 +18,13 @@ class FourSum { return res } - for i in 0 ..< nums.count - 3 { + for i in 0..= m || y < 0 || y >= n { continue } diff --git a/Array/IntersectionTwoArraysII.swift b/Array/IntersectionTwoArraysII.swift index 9aa109a1..42bf664d 100644 --- a/Array/IntersectionTwoArraysII.swift +++ b/Array/IntersectionTwoArraysII.swift @@ -9,8 +9,8 @@ class IntersectionTwoArraysII { func intersect(nums1: [Int], _ nums2: [Int]) -> [Int] { - var nums1 = nums1.sort({$0 < $1}) - var nums2 = nums2.sort({$0 < $1}) + var nums1 = nums1.sorted(by: <) + var nums2 = nums2.sorted(by: <) var i = 0 var j = 0 diff --git a/Array/ProductExceptSelf.swift b/Array/ProductExceptSelf.swift index 3cd12312..b87a3581 100644 --- a/Array/ProductExceptSelf.swift +++ b/Array/ProductExceptSelf.swift @@ -16,7 +16,7 @@ class ProductExceptSelf { let left = _initLeft(nums) let right = _initRight(nums) - for i in 0 ..< nums.count { + for i in 0.. 0 && nums[maxIdx.last!] < nums[i] { maxIdx.removeLast() } diff --git a/Array/SpiralMatrix.swift b/Array/SpiralMatrix.swift index 18dda780..b1522a80 100644 --- a/Array/SpiralMatrix.swift +++ b/Array/SpiralMatrix.swift @@ -20,7 +20,7 @@ class SpiralMatrix { while true { // top - for i in startY ... endY { + for i in startY...endY { res.append(matrix[startX][i]) } startX += 1 @@ -29,7 +29,7 @@ class SpiralMatrix { } // right - for i in startX ... endX { + for i in startX...endX { res.append(matrix[i][endY]) } endY -= 1 diff --git a/Array/SpiralMatrixII.swift b/Array/SpiralMatrixII.swift index 8619d84b..310aa900 100644 --- a/Array/SpiralMatrixII.swift +++ b/Array/SpiralMatrixII.swift @@ -14,18 +14,18 @@ class SpiralMatrixII { var num = 1 var res = Array(repeating: Array(repeating: 0, count: n), count: n) - for layer in 0 ..< n / 2 { + for layer in 0.. 0 && nums[i] != nums[i - 1] + 1) { str = "\(nums[start])" if i - 1 != start { diff --git a/Array/ThreeSum.swift b/Array/ThreeSum.swift index 69f57b5e..8c05de26 100644 --- a/Array/ThreeSum.swift +++ b/Array/ThreeSum.swift @@ -7,14 +7,14 @@ class ThreeSum { func threeSum(nums: [Int]) -> [[Int]] { - var nums = nums.sort({$0 < $1}) + var nums = nums.sorted(by: <) var res = [[Int]]() if nums.count <= 2 { return res } - for i in 0 ... nums.count - 3 { + for i in 0...nums.count - 3 { if i == 0 || nums[i] != nums[i - 1] { var remain = -nums[i] var left = i + 1 diff --git a/Array/ThreeSumClosest.swift b/Array/ThreeSumClosest.swift index d2327bcb..78b6db49 100644 --- a/Array/ThreeSumClosest.swift +++ b/Array/ThreeSumClosest.swift @@ -12,7 +12,7 @@ let nums = nums.sorted() - for i in 0 ..< nums.count - 2 { + for i in 0.. Bool { var visited = Array(count: size, repeatedValue: false) - for i in 0 ..< size { + for i in 0.. Bool { var visited = Array(count: size, repeatedValue: false) - for i in 0 ..< size { + for i in 0.. [[Int]] { - let candidates = [Int](1 ... 9) + let candidates = [Int](1...9) var res = [[Int]]() var path = [Int]() @@ -23,7 +23,7 @@ class CombinationSumIII { return } - for i in index ..< candidates.count { + for i in index.. [[Int]] { var res = [[Int]]() var path = [Int]() - let nums = [Int](1 ... n) + let nums = [Int](1...n) _dfs(nums, &res, &path, 0, k) @@ -23,7 +23,7 @@ class Combinations { return } - for i in index ..< nums.count { + for i in index.. Bool { var c = -1 - for i in 0 ..< row { - for j in 0 ..< board[0].characters.count { + for i in 0.. String { var row = "" - for i in 0 ..< n { + for i in 0.. Bool { var c = -1 - for i in 0 ..< row { + for i in 0.. 0 && nums[i] == nums[i - 1] && visited[i - 1]) { continue } diff --git a/DFS/RemoveInvalidParentheses.swift b/DFS/RemoveInvalidParentheses.swift index 6785baf7..73d11c5e 100644 --- a/DFS/RemoveInvalidParentheses.swift +++ b/DFS/RemoveInvalidParentheses.swift @@ -19,7 +19,7 @@ class RemoveInvalidParentheses { private func dfs(_ res: inout [String], _ s: [Character], _ lastI: Int, _ lastJ: Int, _ parens: (Character, Character)) { var stack = 0, s = s - for i in lastI ..< s.count { + for i in lastI.. 0 && nums[i] == nums[i - 1] && i != index { continue } diff --git a/DFS/SudokuSolver.swift b/DFS/SudokuSolver.swift index d0370d0a..3d969fc1 100644 --- a/DFS/SudokuSolver.swift +++ b/DFS/SudokuSolver.swift @@ -17,10 +17,10 @@ private func helper(_ board: inout [[Character]]) -> Bool { let m = board.count, n = board[0].count - for i in 0 ..< m { - for j in 0 ..< n { + for i in 0..= 2 { dp[i] = max(dp[i], prices[i] - prices[j] + dp[j - 2]) } else { diff --git a/DP/BestTimeBuySellStockII.swift b/DP/BestTimeBuySellStockII.swift index c5826b27..afc0f68e 100644 --- a/DP/BestTimeBuySellStockII.swift +++ b/DP/BestTimeBuySellStockII.swift @@ -13,7 +13,7 @@ return max } - for i in 1 ..< prices.count where prices[i] > prices[i - 1] { + for i in 1.. prices[i - 1] { max += prices[i] - prices[i - 1] } diff --git a/DP/BestTimeBuySellStockIII.swift b/DP/BestTimeBuySellStockIII.swift index ec6c92d6..3a2b32e6 100644 --- a/DP/BestTimeBuySellStockIII.swift +++ b/DP/BestTimeBuySellStockIII.swift @@ -26,7 +26,7 @@ class BestTimeBuySellStockIII { maxProfit = 0 - for i in (0 ..< prices.count).reversed() { + for i in (0.. Int { var sum = 0 - for i in 1 ..< prices.count { + for i in 1.. 0 ? diff : 0 } diff --git a/DP/BurstBalloons.swift b/DP/BurstBalloons.swift index d326bc67..6e304fe3 100644 --- a/DP/BurstBalloons.swift +++ b/DP/BurstBalloons.swift @@ -18,10 +18,10 @@ class BurstBalloons { let n = nums.count, nums = renderNums(nums) var dp = Array(repeating: Array(repeating: 0, count: nums.count), count: nums.count) - for len in 1 ... n { - for left in 1 ... n - len + 1 { + for len in 1...n { + for left in 1...n - len + 1 { let right = left + len - 1 - for k in left ... right { + for k in left...right { dp[left][right] = max(dp[left][right], nums[left - 1] * nums[k] * nums[right + 1] + dp[left][k - 1] + dp[k + 1][right]) } } diff --git a/DP/CoinChange.swift b/DP/CoinChange.swift index 7c7bfdbf..24c03fbb 100644 --- a/DP/CoinChange.swift +++ b/DP/CoinChange.swift @@ -13,7 +13,7 @@ class CoinChange { var minNums = [Int](count: amount + 1, repeatedValue: -1) - for i in 0 ... amount { + for i in 0...amount { for coin in coins { if coin == i { minNums[i] = 1 diff --git a/DP/CombinationSumIV.swift b/DP/CombinationSumIV.swift index 13edc72a..1c83e8ba 100644 --- a/DP/CombinationSumIV.swift +++ b/DP/CombinationSumIV.swift @@ -13,7 +13,7 @@ class CombinationSumIV { dp[0] = 1 let nums = nums.sorted() - for i in 1 ... target { + for i in 1...target { for num in nums { if i < num { break diff --git a/DP/DecodeWays.swift b/DP/DecodeWays.swift index dc9430a2..e656e5e5 100644 --- a/DP/DecodeWays.swift +++ b/DP/DecodeWays.swift @@ -16,11 +16,11 @@ class DecodeWays { return 0 } - for i in 1 ... len { - if isValid(String(sChars[i - 1 ..< i])) { + for i in 1...len { + if isValid(String(sChars[i - 1..= 2 && isValid(String(sChars[i - 2 ..< i])) { + if i >= 2 && isValid(String(sChars[i - 2.. Int { var pre = 0, cur = 0, res = 0 - for i in start ... end { + for i in start...end { res = max(pre + nums[i], cur) (cur, pre) = (res, cur) } diff --git a/DP/LongestIncreasingSubsequence.swift b/DP/LongestIncreasingSubsequence.swift index 9072ec85..bb33e11f 100644 --- a/DP/LongestIncreasingSubsequence.swift +++ b/DP/LongestIncreasingSubsequence.swift @@ -9,8 +9,8 @@ class LongestIncreasingSubsequence { var length_global = 0 var length_current = [Int](count: nums.count, repeatedValue: 1) - for i in 0 ..< nums.count { - for j in 0 ..< i { + for i in 0.. nums[j] { length_current[i] = max(length_current[i], length_current[j] + 1) } diff --git a/DP/LongestPalindromicSubstring.swift b/DP/LongestPalindromicSubstring.swift index b22996f7..fa31fd9f 100644 --- a/DP/LongestPalindromicSubstring.swift +++ b/DP/LongestPalindromicSubstring.swift @@ -19,12 +19,12 @@ class LongestPalindromicSubstring { var isPalin = Array(repeating: Array(repeating: false, count : len), count : len) // set palindrome whose len is 1 - for i in 0 ... len - 1 { + for i in 0...len - 1 { isPalin[i][i] = true } // set palindrome whose len is 2 - for i in 0 ... len - 2 { + for i in 0...len - 2 { if sChars[i] == sChars[i + 1] { isPalin[i][i + 1] = true maxLen = 2 @@ -33,8 +33,8 @@ class LongestPalindromicSubstring { } if len >= 3 { - for length in 3 ... len { - for i in 0 ... len - length { + for length in 3...len { + for i in 0...len - length { if sChars[i] == sChars[i + length - 1] && isPalin[i + 1][i + length - 2] { isPalin[i][i + length - 1] = true maxLen = length @@ -44,6 +44,6 @@ class LongestPalindromicSubstring { } } - return String(sChars[maxStart ... maxStart + maxLen - 1]) + return String(sChars[maxStart...maxStart + maxLen - 1]) } } diff --git a/DP/MaximalSquare.swift b/DP/MaximalSquare.swift index 631a8f1a..adbd52f8 100644 --- a/DP/MaximalSquare.swift +++ b/DP/MaximalSquare.swift @@ -16,8 +16,8 @@ class MaximalSquare { var max_global = 0 var maxSquareSide = Array(count: m, repeatedValue: (Array(count: n, repeatedValue: 0))) - for i in 0 ..< m { - for j in 0 ..< n { + for i in 0.. i { break } diff --git a/DP/Triangle.swift b/DP/Triangle.swift index 6862999f..c0c87090 100644 --- a/DP/Triangle.swift +++ b/DP/Triangle.swift @@ -14,7 +14,7 @@ var dp = triangle.last! for i in stride(from: triangle.count - 2, through: 0, by: -1) { - for j in 0 ... i { + for j in 0...i { dp[j] = min(dp[j], dp[j + 1]) + triangle[i][j] } } diff --git a/LinkedList/RemoveNthFromEnd.swift b/LinkedList/RemoveNthFromEnd.swift index 0b9e7421..80c604b5 100644 --- a/LinkedList/RemoveNthFromEnd.swift +++ b/LinkedList/RemoveNthFromEnd.swift @@ -22,7 +22,7 @@ class RemoveNthFromEnd { var post: ListNode? = dummy // move post - for _ in 0 ..< n { + for _ in 0.. 4. * same thing for 3(p1 - 3). Thus we spilt the original number to multiple 3s and 2s to * get the final result diff --git a/Math/IntegerToRoman.swift b/Math/IntegerToRoman.swift index f113290b..dd292533 100644 --- a/Math/IntegerToRoman.swift +++ b/Math/IntegerToRoman.swift @@ -20,7 +20,7 @@ while number > 0 { let current = number / nums[digit] - for _ in 0 ..< current { + for _ in 0.. Bool { let m = board.count, n = board[0].count - for i in 0 ..< m { - for j in 0 ..< n { + for i in 0.. Int { var ret = 1 - for _ in 0 ..< b { + for _ in 0.. intervals[i + 1].start { return false } diff --git a/Sort/MergeIntervals.swift b/Sort/MergeIntervals.swift index 06123a5e..bc4cba79 100644 --- a/Sort/MergeIntervals.swift +++ b/Sort/MergeIntervals.swift @@ -30,7 +30,7 @@ class MergeIntervals { var res = [intervals.first!] - for i in 1 ..< intervals.count { + for i in 1.. last.end { diff --git a/Sort/TopKFrequentElements.swift b/Sort/TopKFrequentElements.swift index b69793f6..03d68bfd 100644 --- a/Sort/TopKFrequentElements.swift +++ b/Sort/TopKFrequentElements.swift @@ -25,6 +25,6 @@ class TopKFrequentElements { return value1 > value2 } - return Array(keys[0 ..< k]) + return Array(keys[0.. strContent.count { - res = Array(res[0 ..< strContent.count]) + res = Array(res[0.. 0 { // update res if i - startIndex + 1 < minLen { - res = String(sChars[startIndex ... i]) + res = String(sChars[startIndex...i]) minLen = i - startIndex + 1 } count -= 1 diff --git a/String/ReverseStringII.swift b/String/ReverseStringII.swift index 681228be..b223d05d 100644 --- a/String/ReverseStringII.swift +++ b/String/ReverseStringII.swift @@ -20,18 +20,18 @@ class ReverseStringII { print(i) if chars.count < i + k { - res += chars[i ..< chars.count].reversed() + res += chars[i.. maxWidth { @@ -44,10 +44,10 @@ class TextJustification { var res = "" var extraNum = extraNum - for i in start ... end { + for i in start...end { res += words[i] if i != end { - for _ in 1 ... spaceNum { + for _ in 1...spaceNum { res += " " } if extraNum != 0 { @@ -63,14 +63,14 @@ class TextJustification { fileprivate func buildSpecialLine(words: [String], _ start: Int, _ end: Int, _ lineLength: Int) -> String { var res = "" - for i in start ... end { + for i in start...end { res += words[i] if i < end { res += " " } } - for _ in res.characters.count ..< lineLength { + for _ in res.characters.count.. 0 { var size = nodeQ.count - for i in 0 ..< size { + for i in 0..