leetcode 1671
2021/11/22 6:11:20
本文主要是介绍leetcode 1671,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前置题目是300, 对于每个数字, 求得包括其的左递增子序列长度, 和包括其的递减右子列长度, 相加减-即可.
class Solution: def calculate_increase_num(self, nums): if not nums: return nums longest_val_list = [] longest_index_list = [] lis_list = [] longest_val_list.append(nums[0]) longest_index_list.append(0) lis_list.append(1) for i in range(1, len(nums)): val = nums[i] if val > longest_val_list[-1]: longest_val_list.append(val) longest_index_list.append(i) lis_list.append(len(longest_val_list)) continue start = 0 end = len(longest_val_list) - 1 while start < end: mid = (start + end) // 2 if longest_val_list[mid] >= val: end = mid else: start = mid + 1 longest_val_list[start] = val lis_list.append(start + 1) return lis_list def minimumMountainRemovals(self, nums: List[int]) -> int: left_increase_num_list = self.calculate_increase_num(nums) right_increase_num_list = self.calculate_increase_num(nums[::-1])[::-1] length = 0 for i in range(len(left_increase_num_list)): a = left_increase_num_list[i] b = right_increase_num_list[i] if a == 1 or b == 1: continue tmp = a + b - 1 if tmp > length: length = tmp result = len(left_increase_num_list) - length return result
这篇关于leetcode 1671的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解