leetcode1042

 1 class Solution:
 2     def gardenNoAdj(self, N: int, paths: 'List[List[int]]') -> 'List[int]':
 3         s = dict()
 4         n = len(paths)
 5         for i in range(n):
 6             pair = paths[i]
 7             if pair[0] in s:
 8                 s[pair[0]].append(pair[1])
 9             else:
10                 s.update({pair[0]:[pair[1]]})
11             if pair[1] in s.keys():
12                 s[pair[1]].append(pair[0])
13             else:
14                 s.update({pair[1]:[pair[0]]})
15         result = [1] * N
16         for i in range(N):
17             k = i + 1
18             if k in s:
19                 li = sorted(s[k])
20                 st = set()
21                 for j in range(len(li)):
22                     if li[j] < k:
23                         st.add(result[li[j]-1])
24                     else:
25                         break
26                 
27                 if len(st) == 0:
28                     result[i] = 1
29                 else:
30                     for m in range(1,5):
31                         if m not in st:
32                             result[i] = m
33                             break
34         return result

本周的题不好做啊,这个出题人喜欢出的题目都是我不擅长的,为了平台的良好发展,“客观公正”的给个差评吧。

原文地址:https://www.cnblogs.com/asenyang/p/10852107.html