力扣1124.表现良好的最长时间段

2024-06-22 07:44

本文主要是介绍力扣1124.表现良好的最长时间段,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

力扣1124.表现良好的最长时间段

  • 单调栈

    • 将所有>8的标为1,所有<=8的标为-1
    • 最终找到一段区间和为>0的区间下标i - j
    • 最大化i - j (同962.)
  •   class Solution {public:int longestWPI(vector<int>& hours) {int n = hours.size() , res = 0,s[n+1];stack<int> st;s[0] = 0;st.push(0);for(int i=1;i<=n;i++){//求前缀和s[i] = s[i-1] + (hours[i - 1] > 8 ? 1 : -1);//顺便找期待的jif(s[i] < s[st.top()]) st.emplace(i);}for(int i = n;i;i--){//找到满足条件的i 计算答案 弹出栈顶while(!st.empty() && s[i] >s[st.top()]){res = max(res,i - st.top());st.pop();}}return res;}};
    

这篇关于力扣1124.表现良好的最长时间段的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083683

相关文章

邦芒贴士:领导最反感下属这6种表现

在单位里面,如果在工作上出现了下面六种情况,就说明领导已经开始嫌弃你了,你的工作方式和方法一定要发生一些变化,及时的适应领导,如果再按部就班,那可就是真的犯傻。 1.安排事情时你总是排在第一个 安排任何事情的时候,排在第一个的往往是最被动的,因为你没有任何比较,后面安排的任务在轻,你也很难改变这种状况,如果平时安排给你的工作,总是排在比较靠后,最近这一阵子,领导总是第一个先给你安排任务,那

力扣SQL50 每位经理的下属员工数量 join

Problem: 1731. 每位经理的下属员工数量 👨‍🏫 参考题解 Code select m.Employee_id, m.name,count(*) reports_count,round(avg(e.age),0) average_agefrom Employees ejoin Employees mon e.reports_to = m.Employee_id

最长考拉兹序列

题目:  考虑如下定义在正整数集上的迭代规则:  n    n/2 (若n为偶数) n    3n+1 (若n为奇数) 从13开始,可以迭代生成如下的序列:         13  40  20  10  5  16  8  4  2  1 可以看出这个序列(从13开始到1结束)共有10项。 尽管还未被证明,但普遍认为,从任何数开始最终都能抵达1并结束, 这被称为 “考拉兹序列”。

力扣SQL50 游戏玩法分析 IV 子查询

Problem: 550. 游戏玩法分析 IV 👨‍🏫 参考题解 这个SQL查询的目的是计算每个玩家在登录后的第二天参与活动的比例。查询使用了子查询和左连接来实现这一目的。下面是查询的详细解释,包括每个部分的作用和注释: -- 计算每个玩家登录后第二天参与活动的比例select round(avg(a.event_date is not null), 2) as fractio

力扣-2663

题目 如果一个字符串满足以下条件,则称其为 美丽字符串 : 它由英语小写字母表的前 k 个字母组成。它不包含任何长度为 2 或更长的回文子字符串。 给你一个长度为 n 的美丽字符串 s 和一个正整数 k 。 请你找出并返回一个长度为 n 的美丽字符串,该字符串还满足:在字典序大于 s 的所有美丽字符串中字典序最小。如果不存在这样的字符串,则返回一个空字符串。 对于长度相同的两个字符串 a

力扣SQL50 超过5名学生的课

Problem: 596. 超过5名学生的课 Code select classfrom coursesgroup by classhaving count(distinct student) >= 5;

力扣刷题 杨辉三角(使用c++ vector解法)

杨辉三角 题目描述示例1示例2提示:代码 题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例1 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例2 输入: numRows = 1

力扣SQL50 求关注者的数量 分组计数

Problem: 1729. 求关注者的数量 Code select user_id, count(1) followers_countfrom Followers group by user_idorder by user_id;

力扣SQL50 销售分析III having + 条件计数

Problem: 1084. 销售分析III 👨‍🏫 参考题解 Code select s.product_id,p.product_namefrom sales s left join product pon s.product_id = p.product_idgroup by product_idhaving count(if(sale_date between

每日一题——Python代码实现力扣1. 两数之和(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 菜鸡写法 代码分析 时间复杂度分析 空间复杂度分析 改进建议 我要更强 方法1: 使用哈希表(字典) 方法2: 排序和双指针 方法3: 使用集合(仅适用于特殊情况) 哲学和编程思想