Leetcode 3781. Maximum Score After Binary Swaps

  • [Leetcode 3781. Maximum Score After Binary Swaps](#Leetcode 3781. Maximum Score After Binary Swaps)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题是Leetcode双周赛172的第三题,是一道medium难度的题目。

这一题的思路就是一个有序栈的思路,对于任意一个 1 1 1出现的位置,他能取到的最大值就是其前方所有出现过的元素的最大值,因此,我们只需要维持一个有序数组,其元素为前序所有元素的值,然后每次遇到一个 1 1 1的位置,就弹出当前数组中最大的值即可。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def maximumScore(self, nums: List[int], s: str) -> int:
        cache = []
        ans = 0
        for num, ch in zip(nums, s):
            bisect.insort(cache, num)
            if ch == "1":
                ans += cache[-1]
                cache.pop()
        return ans

提交代码评测得到:耗时1575ms,占用内存33.30MB。

相关推荐
xiaoye-duck1 天前
《算法题讲解指南:优选算法-栈》--65.删除字符中的所有相邻重复项,66.比较含退格的字符串,67.基本计算器II,68.字符串解码,69.验证栈序列
c++·算法·
圣光SG3 天前
数据结构通用笔记(语言无关)
数据结构·学习·链表·数组··队列
披着羊皮不是狼6 天前
深度解构栈内存的物理逻辑与系统保护
数据结构··底层原理
iFlyCai7 天前
栈的概念和用法
·数据结构与算法
Q741_1478 天前
每日一题 力扣 2751.机器人碰撞 映射 模拟 栈 C++ 题解
算法·leetcode·模拟··映射
Book思议-10 天前
【数据结构】栈与队列全方位对比 + C 语言完整实现
c语言·数据结构·算法··队列
Book思议-10 天前
【数据结构实战】栈的经典应用:后缀表达式求值 +中缀转后缀 ,原理 + 代码双通透
数据结构·算法··后缀表达式·后缀转中缀
Q741_14713 天前
每日一题 力扣 2946. 循环移位后的矩阵相似检查 力扣 155. 最小栈 数学 数组 模拟 C++ 题解
c++·算法·leetcode·矩阵·模拟·数组·
Book思议-15 天前
【数据结构实战】C语言实现栈的链式存储:从初始化到销毁,手把手教你写可运行代码
数据结构·算法·链表··408
Book思议-15 天前
【数据结构实战】川剧 “扯脸” 与栈的 LIFO 特性 :用 C 语言实现 3 种栈结构
c语言·数据结构·算法·