classSolution: defsatisfy(self, arr2, i, d): for j in arr2: if abs(j-i)<=d: returnFalse returnTrue deffindTheDistanceValue(self, arr1: List[int], arr2: List[int], d: int) -> int: n = 0 for i in arr1: if self.satisfy(arr2, i, d): n += 1 return n
classSolution: defmaxNumberOfFamiliesCurrentRow(self, l): a1 = 2notin l and3notin l a2 = 4notin l and5notin l a3 = 6notin l and7notin l a4 = 8notin l and9notin l n = 0 if a1: n += 1 if a2: n += 1 if a3: n += 1 if a4: n += 1 if n==4: return2 if n==3: return1 if n==1: return0 if (a1 and a2) or (a2 and a3) or (a3 and a4): return1 return0 defmaxNumberOfFamilies1(self, n: int, reservedSeats: List[List[int]]) -> int: # 超时 d = {i:[] for i in range(1, n+1)} for i, j in reservedSeats: d[i].append(j) n = 0 for i in d.values(): n += self.maxNumberOfFamiliesCurrentRow(i) return n defmaxNumberOfFamilies(self, n: int, reservedSeats: List[List[int]]) -> int: d = {} for i, j in reservedSeats: if i notin d: d[i] = [j] else: d[i].append(j) n = 2*(n-len(d)) for i in d.values(): n += self.maxNumberOfFamiliesCurrentRow(i) return n
3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
classSolution: defgetPower(self, n): res = 0 while n!=1: if n%2 == 0: n /= 2 else: n = n*3+1 res += 1 return res defgetKth(self, lo: int, hi: int, k: int) -> int: d = {} for i in range(lo, hi+1): d[i] = self.getPower(i) l = list(d.items()) l.sort(key=lambda i: i[1]) #print(l) return l[k-1][0]