Skip to content

Commit c258f22

Browse files
committedAug 22, 2020
2020-08-22
1 parent fc01070 commit c258f22

File tree

2 files changed

+16
-19
lines changed

2 files changed

+16
-19
lines changed
 

‎1535.找出数组游戏的赢家/1535-找出数组游戏的赢家.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ def getWinner(self, arr, k):
55
:type k: int
66
:rtype: int
77
"""
8-
pre = max(arr[0], arr[1])
8+
winner = max(arr[0], arr[1])
99
cnt = 1
1010
for num in arr[2:]:
1111
if cnt == k:
12-
return pre
13-
if pre > num:
12+
return winner
13+
if winner > num:
1414
cnt += 1
1515
else:
16-
pre = num
16+
#刷新winner
17+
winner = num
1718
cnt = 1
18-
return pre
19-
19+
return winner

‎1536.排布二进制网格的最少交换次数/1536-排布二进制网格的最少交换次数.py

+10-13
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@ def minSwaps(self, grid):
44
:type grid: List[List[int]]
55
:rtype: int
66
"""
7-
from collections import defaultdict, deque
8-
dic = dict()
7+
dic = dict() # key 是每行的idx, val 是这一行末尾0的个数
98
n = len(grid)
10-
for i, row in enumerate(grid):
9+
for i, row in enumerate(grid): # 统计每一行末尾有几个0
1110
cnt = 0
1211
for j in range(n - 1, -1, -1):
1312
if not row[j]:
@@ -18,17 +17,15 @@ def minSwaps(self, grid):
1817

1918
res = 0
2019
for i in range(n):
21-
zero_cnt = dic[i]
22-
23-
if zero_cnt < n - i - 1:
20+
if dic[i] < n - i - 1: # 这一行0太少,需要放到下面去
2421
for j in range(i + 1, n):
25-
if dic[j] >= n - i - 1:
22+
if dic[j] >= n - i - 1: # 找到0足够多的行
2623
break
27-
if dic[j] < n - i - 1:
24+
if dic[j] < n - i - 1: # 没找到说明无解
2825
return -1
29-
tmp = dic[j]
30-
res += j - i
31-
for k in range(j, i, -1):
26+
27+
for k in range(j, i, -1): #把第i行换到第j行的位置上去
3228
dic[k] = dic[k - 1]
33-
34-
return res
29+
30+
res += j - i
31+
return res

0 commit comments

Comments
 (0)