2*dp 2*bit
This commit is contained in:
parent
cdb6cccb89
commit
bccc78b194
20
190-240603-pass/main.py
Normal file
20
190-240603-pass/main.py
Normal file
@ -0,0 +1,20 @@
|
||||
class Solution:
|
||||
def reverseBits(self, n: int) -> int:
|
||||
num = n
|
||||
l = []
|
||||
while num != 0:
|
||||
l.append(num % 2)
|
||||
num //= 2
|
||||
rlt = 0
|
||||
length = len(l)
|
||||
while len(l) < 32:
|
||||
l.append(0)
|
||||
print(l)
|
||||
l.reverse()
|
||||
for i, n in enumerate(l):
|
||||
rlt += n * pow(2, i)
|
||||
return rlt
|
||||
|
||||
|
||||
sol = Solution()
|
||||
print(sol.reverseBits(43261596))
|
16
198-240603-pass/main.py
Normal file
16
198-240603-pass/main.py
Normal file
@ -0,0 +1,16 @@
|
||||
class Solution:
|
||||
def rob(self, nums: list[int]) -> int:
|
||||
s = []
|
||||
rlt = -1e6
|
||||
for i, num in enumerate(nums):
|
||||
maxi = num
|
||||
for j in range(0, i - 1, 1):
|
||||
maxi = max(s[j] + num, maxi)
|
||||
s.append(maxi)
|
||||
rlt = max(maxi, rlt)
|
||||
return rlt
|
||||
|
||||
sol = Solution()
|
||||
print(sol.rob([1, 2, 3, 1]))
|
||||
print(sol.rob([2, 7, 9, 3, 1]))
|
||||
print(sol.rob([2, 7, 9, 9, 3, 1]))
|
21
64-240603-pass/main.py
Normal file
21
64-240603-pass/main.py
Normal file
@ -0,0 +1,21 @@
|
||||
class Solution:
|
||||
def minPathSum(self, grid: List[List[int]]) -> int:
|
||||
r = []
|
||||
for i in range(len(grid)):
|
||||
r.append([])
|
||||
for i , l in enumerate(grid):
|
||||
for j, num in enumerate(l):
|
||||
if i == 0 and j == 0:
|
||||
r[i].append(num)
|
||||
continue
|
||||
if i == 0:
|
||||
r[i].append(num + r[i][j - 1])
|
||||
continue
|
||||
if j == 0:
|
||||
r[i].append(num + r[i - 1][0])
|
||||
continue
|
||||
r[i].append(min(r[i - 1][j], r[i][j - 1]) + num)
|
||||
width = len(grid[0])
|
||||
height = len(grid)
|
||||
return r[height - 1][width - 1]
|
||||
|
25
66-240603-pass/main.py
Normal file
25
66-240603-pass/main.py
Normal file
@ -0,0 +1,25 @@
|
||||
class Solution:
|
||||
def plusOne(self, digits: list[int]) -> list[int]:
|
||||
flag = 1
|
||||
# x = digits[-1] + 1
|
||||
# if x == 10:
|
||||
# flag = 1
|
||||
# digits[-1] = 0
|
||||
# else:
|
||||
# digits[-1] = x
|
||||
for i in range(len(digits) - 1, -1, -1):
|
||||
x = digits[i] + flag
|
||||
digits[i] = x
|
||||
if x == 10:
|
||||
flag = 1
|
||||
digits[i] = 0
|
||||
else:
|
||||
flag = 0
|
||||
if digits[0] == 0:
|
||||
digits.insert(0, 1)
|
||||
return digits
|
||||
|
||||
sol = Solution()
|
||||
print(sol.plusOne([1, 2, 3]))
|
||||
print(sol.plusOne([1, 2, 3, 4]))
|
||||
print(sol.plusOne([9]))
|
Loading…
Reference in New Issue
Block a user