2025-09-08 学习日记

发布于 2025-09-08 12:00 417 字 3 min read 手写 每个字都是我自己敲的。

2025-12-24 学习日记2025-12-17 学习日记2025-12-14 学习日记2025-12-09 学习日记2025-12-08 学习日记2025-12-07 学习日记2025-12-06 学习日记2025-12-05 学习日记2025-12-04 学习日记2025-12-03 学习日记2025-12-02 学习日记2025-12-01 学习日记2025-11-30 学习日记2025-11-29 学习日记2025-11-28 学习日记2025-11-27 学习日记2025-11-26 学习日记2025-11-25 学习日记2025-11-24 学习日记2025-11-23 学习日记2025-11-22 学习日记2025-11-21 学习日记2025-11-20 学习日记2025-11-19 学习日记2025-11-18 学习日记2025-11-17 学习日记2025-11-16 学习日记2025-11-15 学习日记2025-11-14 学习日记2025-11-13 学习日记2025-11-12 学习日记2025-11-11 学习日记2025-11-10 学习日记2025-11-09 学习日记2025-11-08 学习日记2025-11-07 学习日记2025-11-06 学习日记2025-11-05 学习日记2025-11-04 学习日记2025-11-03 学习日记2025-11-02 学习日记2025-11-01 学习日记2025-10-31 学习日记2025-10-30 学习日记2025-10-29 学习日记2025-10-28 学习日记2025-10-27 学习日记2025-10-26 学习日记2025-10-25 学习日记2025-10-24 学习日记2025-10-23 学习日记2025-10-22 学习日记2025-10-21 学习日记2025-10-20 学习日记2025-10-19 学习日记2025-10-18 学习日记2025-10-17 学习日记2025-10-16 学习日记2025-10-15 学习日记2025-10-14 学习日记2025-10-13 学习日记2025-10-11 学习日记2025-10-10 学习日记2025-10-09 学习日记2025-10-03 学习日记2025-10-02 学习日记2025-10-01 学习日记2025-09-30 学习日记2025-09-29 学习日记2025-09-28 学习日记2025-09-27 学习日记2025-09-26 学习日记2025-09-25 学习日记2025-09-24 学习日记2025-09-23 学习日记2025-09-22 学习日记2025-09-21 学习日记2025-09-20 学习日记2025-09-18 学习日记2025-09-17 学习日记2025-09-16 学习日记2025-09-15 学习日记2025-09-14 学习日记2025-09-13 学习日记2025-09-12 学习日记2025-09-11 学习日记2025-09-10 学习日记2025-09-09 学习日记2025-09-08 学习日记2025-09-04 学习日记2025-09-03 学习日记2025-09-02 学习日记2025-09-01 学习日记2025-08-31 学习日记2025-08-29 学习日记2025-08-28 学习日记2025-08-27 学习日记2025-08-26 学习日记2025-08-25 学习日记2025-08-24 周记2025-08-23 学习日记2025-08-22 学习日记2025-08-21 学习日记2025-08-20 学习日记2025-08-19 学习日记2025-08-18 学习日记2025-08-17 周记2025-08-16 学习日记2025-08-15 学习日记2025-08-14 学习日记2025-08-13 学习日记2025-08-12 学习日记2025-08-11 学习日记
今日学习记录 1. 碗子数组数目leetcode.3676 关键词: 问题分析: 问题其实很简单,找到所以像碗一样分布的数组就行,碗中间小两边大,求满足中间值小于两端点最小值的数组数 核心思路 开始被平衡碗限制了想像,但是要严格的证明,两端点一定不能装比左大的数,而且中间数也不能大于左端点,所以要找到右边第一个大于左端点的数,枚举左,查找右...

今日学习记录

1. 碗子数组数目leetcode.3676

关键词:单调栈 问题分析:

  1. 问题其实很简单,找到所以像碗一样分布的数组就行,碗中间小两边大,求满足中间值小于两端点最小值的数组数

核心思路

  1. 开始被平衡碗限制了想像,但是要严格的证明,两端点一定不能装比左大的数,而且中间数也不能大于左端点,所以要找到右边第一个大于左端点的数,枚举左,查找右
  2. 还要讨论右端端点的情况,直接类似于枚举左,实现时不能使用双循环,会超时
  3. 利用单调栈的特性来维护左端点,在单调栈中,保持单调关系,一个元素比左边小,比较右边,右边比这个元素大,就找到符合条件的,踢出栈顶,若右边元素还比左元素大,那么说明中间元素都比左边小,且小于右边,则又得到符合条件的数

**最终代码:

long long bowlSubarrays(vector<int>& nums) {

        long long ans = 0;

        int n = nums.size();

        stack<int> st;

        for(int i = 0;i<n;i++){

            int x = nums[i];

            while(!st.empty()&&nums[st.top()]<x){

                if(i-st.top()>1) ans++;

                st.pop();

            }

            if(!st.empty()&&i-st.top()>1) ans++;

            st.push(i);

        }

        return ans;

    }

学到的点:

  1. 单调栈应用

今日收获

  1. 待加强

  2. 明日计划:

    • [ ]
    • [ ]

执笔 手写

随机文章

加载中...