My LeetCode grinding. Trying to do a problem a day.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

1234567891011121314151617181920212223242526272829
  1. class Solution:
  2. def __init__(self):
  3. self.memo = dict()
  4. self.memo[1] = 0
  5. def getKth(self, lo, hi, k):
  6. for i in range(lo, hi + 1):
  7. self.power(i)
  8. sort_out = sorted(list(range(lo, hi + 1)), key=lambda x: self.power(x), reverse=False)
  9. return sort_out[k - 1] # Why is this one-indexed?? SMH
  10. def power(self, n):
  11. # first check the memo to ensure we don't do extra work
  12. # then the array should fill up quickly as we go
  13. if n in self.memo:
  14. return self.memo[n]
  15. elif n % 2 == 0:
  16. total = 1 + self.power(n//2)
  17. else:
  18. total = 1 + self.power(3*n+1)
  19. self.memo[n] = total
  20. return total
  21. s = Solution()
  22. print("Expected: 13")
  23. print("Got:", s.getKth(12, 15, 2))