File tree Expand file tree Collapse file tree 2 files changed +81
-0
lines changed
Expand file tree Collapse file tree 2 files changed +81
-0
lines changed Original file line number Diff line number Diff line change 1+ ##情侣牵手
2+ ```
3+ class Solution {
4+ func minSwapsCouples(_ row: [Int]) -> Int {
5+ var items = row
6+ var count: Int = 0
7+ var index:Int = 0
8+
9+ while index < row.count - 1 {
10+ let firstItem = items[index]
11+ let secondItem = items[index + 1]
12+
13+ if firstItem % 2 == 0 { // 偶数
14+ if secondItem != firstItem + 1 { // 非情侣
15+ items = swapItems(items: items, item1: secondItem, item2: firstItem + 1)
16+ count += 1
17+ }
18+ } else { // 奇数
19+ if secondItem != firstItem - 1 { // 非情侣
20+ items = swapItems(items: items, item1: secondItem, item2: firstItem - 1)
21+ count += 1
22+ }
23+ }
24+
25+ // 自增2
26+ index = index + 2
27+
28+ }
29+
30+
31+ return count
32+ }
33+
34+ func swapItems(items:[Int], item1: Int, item2: Int) -> [Int] {
35+ var newitem = items
36+ let index1 = newitem.index(of: item1)
37+ let index2 = newitem.index(of: item2)
38+ newitem[index1!] = item2
39+ newitem[index2!] = item1
40+
41+ return newitem
42+ }
43+ }
44+
45+ ```
Original file line number Diff line number Diff line change 1+ ##最长连续序列
2+
3+ ```
4+ class Solution {
5+ func longestConsecutive(_ nums: [Int]) -> Int {
6+
7+ if nums.count == 0 {
8+ return 0
9+ }
10+
11+ // 先从小到大排序
12+ var newItems = nums.sorted { (num1, num2) -> Bool in
13+ return num1 < num2
14+ }
15+
16+ var longestCount = 1
17+ var currenCount = 1
18+ var i = 0
19+ // 判断相邻的有序数列是否连续,并找出最大值
20+ while(i < newItems.count - 1) {
21+ if (newItems[i + 1]) != newItems[i] {
22+ if newItems[i + 1] == newItems[i] + 1 {
23+ currenCount += 1
24+ } else {
25+ longestCount = max(longestCount, currenCount)
26+ currenCount = 1
27+ }
28+
29+ }
30+ i += 1
31+ }
32+
33+ return max(longestCount, currenCount)
34+ }
35+ }
36+ ```
You can’t perform that action at this time.
0 commit comments