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。

相关推荐
玖玥拾13 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
8Qi820 天前
LeetCode 32:最长有效括号 —— 栈 + 标记法 题解
java·数据结构·算法·leetcode·职场和发展··括号匹配
进击的荆棘1 个月前
优选算法——栈
数据结构·c++·算法·leetcode·
Dlrb12111 个月前
数据结构-栈
数据结构··内核栈·满栈空栈·增栈减栈
bnmoel1 个月前
数据结构深度剖析栈与队列:结构、边界实现与进出操作全解析
c语言·数据结构·算法··队列
汉克老师1 个月前
GESP6级C++考试语法知识(十五、数据结构(一、认识栈 Stack))
c++··gesp6级·gesp六级·数组模拟栈
谙弆悕博士1 个月前
【附C语言源码】C语言 栈结构 实现及其扩展操作
c语言·开发语言·数据结构·算法·链表·指针·
庞轩px2 个月前
第二篇:内存——你的变量到底存在哪
内存···缓存命中率·变量生命周期·字符串常量
W.W.H.2 个月前
嵌入式栈堆管理与内存分配详解
内存管理···rtos·heap·stack
浅念-2 个月前
吃透栈:LeetCode 栈算法题全解析
数据结构·c++·算法·leetcode·职场和发展·