题目链接:
解题思路:
找到横切和竖切的最大间隔,然后相乘
代码:
class Solution:
def maxArea(self, h: int, w: int, horizontalCuts: List[int], verticalCuts: List[int]) -> int:
horizontalCuts.sort()
verticalCuts.sort()
n_hori=len(horizontalCuts)
n_vert=len(verticalCuts)
if n_hori>1:
diff_hori=[horizontalCuts[i+1]-horizontalCuts[i] for i in range(n_hori-1)]
diff_hori.append(horizontalCuts[0])
diff_hori.append(h-horizontalCuts[-1])
else:
diff_hori=[horizontalCuts[0]]
diff_hori.append(h-horizontalCuts[0])
if n_vert>1:
diff_vert=[verticalCuts[i+1]-verticalCuts[i] for i in range(n_vert-1)]
diff_vert.append(verticalCuts[0])
diff_vert.append(w-verticalCuts[-1])
else:
diff_vert=[verticalCuts[0]]
diff_vert.append(w-verticalCuts[0])
return max(diff_hori)*max(diff_vert)%(10**9+7)
本文探讨了如何通过计算横切和竖切的最大间隔并相乘来解决蛋糕切割问题,以找到最大面积的切割方式。文章详细介绍了算法的实现过程,包括对切割点进行排序,计算相邻切割点之间的差值,最后返回最大横切和竖切间隔的乘积。

1687

被折叠的 条评论
为什么被折叠?



