Skip to content

Commit 084f4c1

Browse files
committed
fix README
1 parent d21fb3e commit 084f4c1

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed

.DS_Store

6 KB
Binary file not shown.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ Not only Leetcode solutions in Swift.
1212
* [128. Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/)
1313
* [134. Gas Station](https://leetcode.com/problems/gas-station/)
1414
* [167. Two Sum II - Input array is sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/)
15+
* [169. Majority Element](https://leetcode.com/problems/majority-element/)
1516
* [170. Two Sum III - Data structure design](https://leetcode.com/problems/two-sum-iii-data-structure-design)
1617
* [Two Sum - Less than or equal to target](http://www.lintcode.com/en/problem/two-sum-less-than-or-equal-to-target/)
1718
* [Two Sum - Greater than target](http://www.lintcode.com/en/problem/two-sum-greater-than-target/)
1819
* [Two Sum - Difference equals to target](http://www.lintcode.com/en/problem/two-sum-difference-equals-to-target/)
1920
* [217. Contains Duplicate](https://leetcode.com/problems/contains-duplicate/)
2021
* [219. Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii/)
22+
* [229. Majority Element II](https://leetcode.com/problems/majority-element-ii/)
2123
* [259. 3Sum Smaller](https://leetcode.com/problems/3sum-smaller)
2224
* [349. Intersection of Two Arrays](https://leetcode.com/problems/intersection-of-two-arrays/)
2325
* [350. Intersection of Two Arrays II](http://www.jiuzhang.com/solutions/intersection-of-two-arrays-ii/)

SwiftyLeetCode.playground/Contents.swift

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,38 @@ let twoSumIITarget = 9
423423

424424
Solution.twoSum(nums: twoSumIINums, twoSumIITarget)
425425

426+
/**
427+
* 169. Majority Element
428+
* https://leetcode.com/problems/majority-element/
429+
*/
430+
431+
extension Solution {
432+
class func majorityElement(nums: [Int]?) -> Int? {
433+
guard let nums = nums, nums.count > 1 else { return nil }
434+
435+
var major = 0
436+
var count = 0
437+
438+
for num in nums {
439+
if (count == 0) {
440+
major = num
441+
count += 1
442+
} else if (major == num) {
443+
count += 1
444+
} else {
445+
count -= 1
446+
}
447+
}
448+
449+
return major
450+
}
451+
}
452+
453+
// usage
454+
455+
let majorityElementNums = [2, 6, 2, 40, 15, 2, 2, 36]
456+
Solution.majorityElement(nums: majorityElementNums)
457+
426458
/**
427459
* 170. Two Sum III - Data structure design
428460
* https://leetcode.com/problems/two-sum-iii-data-structure-design
@@ -633,6 +665,66 @@ Solution.containsDuplicateII(nums: nums1, 3)
633665
Solution.containsDuplicateII(nums: nums1, 5)
634666
Solution.containsDuplicateII(nums: nums2, 2)
635667

668+
/**
669+
* 229. Majority Element II
670+
* https://leetcode.com/problems/majority-element-ii/
671+
*/
672+
673+
extension Solution {
674+
class func majorityElementII(nums: [Int]?) -> [Int]? {
675+
guard let nums = nums, nums.count > 1 else { return nil }
676+
677+
var count1 = 0
678+
var count2 = 0
679+
var candidate1 = 0
680+
var candidate2 = 0
681+
var res = [Int]()
682+
683+
for num in nums {
684+
if (num == candidate1) {
685+
count1 += 1
686+
} else if (num == candidate2){
687+
count2 += 1
688+
} else if (count1 == 0) {
689+
candidate1 = num
690+
count1 = 1
691+
} else if (count2 == 0) {
692+
candidate2 = num
693+
count2 = 1
694+
} else {
695+
count1 -= 1
696+
count2 -= 1
697+
}
698+
}
699+
700+
count1 = 0
701+
count2 = 0
702+
703+
for num in nums {
704+
if num == candidate1 {
705+
count1 += 1
706+
}
707+
if num == candidate2 {
708+
count2 += 1
709+
}
710+
}
711+
712+
if count1 > nums.count / 3 {
713+
res.append(candidate1)
714+
}
715+
if count2 > nums.count / 3 {
716+
res.append(candidate2)
717+
}
718+
719+
return res
720+
}
721+
}
722+
723+
// usage
724+
725+
let majorityElementIINums = [1,3, 7, 1, 1, 8, 3, 2, 1]
726+
Solution.majorityElementII(nums: majorityElementIINums)
727+
636728
/**
637729
* 259. 3Sum Smaller
638730
* https://leetcode.com/problems/3sum-smaller

0 commit comments

Comments
 (0)