-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathproblem_1337.py
47 lines (44 loc) · 1.42 KB
/
problem_1337.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
### Problem 1337. The K Weakest Rows in a Matrix (Easy)
class Solution:
def kWeakestRows(self, mat: List[List[int]], k: int) -> List[int]:
soldiers = {}
for i in range(len(mat)):
count = 0
for j in mat[i]:
if(j == 1):
count += 1
else:
break
soldiers[i] = count
print(soldiers)
# return index of k smallest elements
sorted_soldiers = dict(sorted(soldiers.items(), key = lambda items: items[1]))
result = []
for key, value in sorted_soldiers.items():
if(k < 1):
break
result.append(key)
k -= 1
return result
class Solution:
def kWeakestRows(self, mat: List[List[int]], k: int) -> List[int]:
soldiers = {}
for i in range(len(mat)):
count = 0
for j in mat[i]:
if(j == 1):
count += 1
else:
break
soldiers[i] = count
print(soldiers)
# return index of k smallest elements
priority_queue = []
for key, value in soldiers.items():
pair = (value, key)
heapq.heappush(priority_queue, pair)
weakest = heapq.nsmallest(k, priority_queue)
result = []
for pair in weakest:
result.append(pair[1])
return result