欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

python刷题技巧_【python刷题】分治法

发布时间:2024/9/27 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python刷题技巧_【python刷题】分治法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

归并排序

def merge(le, ri):

res = []

i = j = 0

while i < len(le) and j < len(ri):

if le[i] < ri[j]:

res.append(le[i])

i += 1

else:

res.append(ri[j])

j += 1

res = res + le[i:] + ri[j:]

return res

def mergeSort(nums):

if len(nums) <= 1:

return nums

mid = len(nums) // 2

left = mergeSort(nums[:mid])

right = mergeSort(nums[mid:])

res = merge(left, right)

return res

nums = [6,2,1,5,4,3,2,2,7]

res = mergeSort(nums)

print(res)

leetcode 241 为运算表达式设计优先级

class Solution:

def diffWaysToCompute(self, input: str) -> List[int]:

res = []

n = len(input)

for i in range(n):

c = input[i]

if c == '+' or c == '-' or c == '*':

left = self.diffWaysToCompute(input[:i])

right = self.diffWaysToCompute(input[i+1:])

for a in left:

for b in right:

if c == '+':

res.append(a + b)

elif c == '-':

res.append(a - b)

elif c == '*':

res.append(a * b)

if len(res) == 0:

res.append(int(input))

return res

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的python刷题技巧_【python刷题】分治法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。