山形三元组

编程入门 行业动态 更新时间:2024-10-27 02:26:05

<a href=https://www.elefans.com/category/jswz/34/1663346.html style=山形三元组"/>

山形三元组

可以先考虑两个数的情况,即找到一个数作为中间点,左边找到最小值,右边找到最小值,计算三个数的和。然后枚举中间点,计算所有可能的和中的最小值即可。

代码如下:

class Solution:def minTotal(self, nums: List[int]) -> int:n = len(nums)res = float('inf')for j in range(1, n - 1):left_min, right_min = float('inf'), float('inf')for i in range(j):if nums[i] < nums[j]:left_min = min(left_min, nums[i])for k in range(j + 1, n):if nums[k] < nums[j]:right_min = min(right_min, nums[k])if left_min != float('inf') and right_min != float('inf'):res = min(res, left_min + nums[j] + right_min)return res if res != float('inf') else -1

时间复杂度为O(n^3),可以通过本题,但不是最优解。

更多推荐

山形三元组

本文发布于:2023-12-04 18:35:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661856.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:山形

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!