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。

相关推荐
元亓亓亓2 天前
考研408--数据结构--day5--栈与队列的应用
数据结构·考研··408·队列
闻缺陷则喜何志丹5 天前
【栈 递归】P8650 [蓝桥杯 2017 省 A] 正则问题|普及+
c++·数学·蓝桥杯·递归·
沉默-_-8 天前
备战蓝桥杯--栈
数据结构·算法·力扣·
福赖10 天前
《堆 / 栈 / 静态区区别、内存泄漏原因及排查》
c++·内存··
平生不喜凡桃李10 天前
二叉树遍历非递归写法: 栈
c++··二叉树遍历·非递归
皮蛋sol周18 天前
嵌入式学习数据结构(三)栈 链式 循环队列
arm开发·数据结构·学习·算法··循环队列·链式队列
老鼠只爱大米19 天前
LeetCode经典算法面试题 #394:字符串解码(递归、双栈、迭代构建等五种实现方案详解)
算法·leetcode·面试·递归··字符串解码
txzrxz20 天前
数据结构有关的题目(栈,队列,set和map)
数据结构·c++·笔记·算法··队列
闻缺陷则喜何志丹23 天前
P10160 [DTCPC 2024] Ultra|普及+
数据结构·c++··洛谷
星火开发设计24 天前
C++ stack 全面解析与实战指南
java·数据结构·c++·学习·rpc··知识