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。

相关推荐
_小草鱼_8 天前
【数据结构】栈和队列
数据结构·数组··队列
qeen8712 天前
【数据结构】栈及其C语言模拟实现
c语言·数据结构·学习·
旖-旎12 天前
栈(验证栈序列)(5)
c++·算法·leetcode·力扣·
郝学胜-神的一滴19 天前
二叉树后序遍历:从递归到非递归的优雅实现
数据结构·c++·程序人生·算法·
xiaoye-duck21 天前
《算法题讲解指南:优选算法-栈》--65.删除字符中的所有相邻重复项,66.比较含退格的字符串,67.基本计算器II,68.字符串解码,69.验证栈序列
c++·算法·
圣光SG23 天前
数据结构通用笔记(语言无关)
数据结构·学习·链表·数组··队列
披着羊皮不是狼1 个月前
深度解构栈内存的物理逻辑与系统保护
数据结构··底层原理
iFlyCai1 个月前
栈的概念和用法
·数据结构与算法
Q741_1471 个月前
每日一题 力扣 2751.机器人碰撞 映射 模拟 栈 C++ 题解
算法·leetcode·模拟··映射
Book思议-1 个月前
【数据结构】栈与队列全方位对比 + C 语言完整实现
c语言·数据结构·算法··队列