Skip to content

Commit ee8bfee

Browse files
committed
提交算法题
提交5月算法题
1 parent 48da7f3 commit ee8bfee

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

高/5月-情侣牵手-杨梦飞.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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+
```
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
```

0 commit comments

Comments
 (0)