当前位置: 首页 > news >正文

Day43力扣打卡

打卡记录

在这里插入图片描述

子数组的最小值之和(乘法原理 + 单调栈)

大佬的题解

class Solution:def sumSubarrayMins(self, arr: List[int]) -> int:n = len(arr)# 左边界 left[i] 为左侧严格小于 arr[i] 的最近元素位置(不存在时为 -1)left, st = [-1] * n, []for i, x in enumerate(arr):while st and arr[st[-1]] >= x:st.pop()  # 移除无用数据if st: left[i] = st[-1]st.append(i)# 右边界 right[i] 为右侧小于等于 arr[i] 的最近元素位置(不存在时为 n)right, st = [n] * n, []for i in range(n - 1, -1, -1):while st and arr[st[-1]] > arr[i]:st.pop()  # 移除无用数据if st: right[i] = st[-1]st.append(i)ans = 0for i, (x, l, r) in enumerate(zip(arr, left, right)):ans += x * (i - l) * (r - i)  # 累加贡献return ans % (10 ** 9 + 7)
http://www.lryc.cn/news/246304.html

相关文章:

  • elementui的table合并列,三个一组
  • HarmonyOS-Service服务开发(一)
  • FLASK博客系列4——再谈路由
  • sql之left join、right join、inner join的区别
  • 京东秒杀之秒杀详情
  • mobaxterm 下载、安装、使用
  • 办公技巧:Word中插入图片、形状、文本框排版技巧
  • apple macbook M系列芯片安装 openJDK17
  • C语言——打印出所有的“水仙花数”
  • <HarmonyOS第一课>应用程序框架 【课后考核】
  • 自动驾驶学习笔记(十一)——高精地图
  • HCIA-H12-811题目解析(2)
  • Docker-简介、基本操作
  • Codeforces Round 911 (Div. 2)(C dp D gcd 分解+容斥 E tarjan+dp)
  • 给csgo游戏搬砖新手的十大建议
  • 西南科技大学模拟电子技术实验一(常用电子仪器的使用及电子元器件的识别)预习报告
  • 回归分析例题(多元统计分析期末复习)
  • Linux多路转接select,poll
  • 如何轻松将 4K 转换为 1080p 高清视频
  • 责任链模式 (Chain of Responsibility Pattern)
  • 企业营销管理能够实现自动化吗?怎么做?
  • 【数据结构】什么是栈?
  • 基于C#实现鸡尾酒排序(双向冒泡排序)
  • CentOS添加开机启动
  • SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解
  • vue3安装eslint和prettier,最简单的步骤
  • Day32| Leetcode 122. 买卖股票的最佳时机 II Leetcode 55. 跳跃游戏 Leetcode 45. 跳跃游戏 II
  • 95.STL-遍历算法 for_each
  • Python基础语法之学习type()函数
  • filebeat报错dropping too large message of size