2*dp 2*bit

This commit is contained in:
mhrooz 2024-06-03 17:50:37 +02:00
parent cdb6cccb89
commit bccc78b194
4 changed files with 82 additions and 0 deletions

20
190-240603-pass/main.py Normal file
View 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
View 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
View 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
View 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]))