On到O1的方法

1. 单调栈(队列)

Leetcode 题目----含特定字母的最小子序列

class Solution {
    struct node{
        int id;
        char ch;
        node(int a,char c):id(a),ch(c){}
    };
    bool compare(node n1,node n2){
        return n1.ch > n2.ch;
    }
public:
    string smallestSubsequence(string s, int k, char letter, int repetition) {
        int n = s.size();
        vector<int>v(1,0);   //表示第i个letter在s中出现的位置
        int appear_num = 0;      //表示letter出现的次数
        for(int i = 0;i<n;i++){
            if(s[i] == letter){
                appear_num++;
                v.push_back(i);
            }
        }
        int other_character_num = k-repetition;
        string ret = "";
        int start_id = 0;
        int end_id = n-1;
        deque<node>dq;//相当于一个递增栈,每次从栈底贪心选出当前未知的字母。
        for(int i = 1;i<=other_character_num;i++){
            //总共有appear_num个letter,那么第1个lette出现的范围应该保证
            //1.选了之后还剩repetition-1个letter,如果目前的letter数量不够的话,够了就不管他了
            //2.选了之后至少还有k-1个字母
            int tmp1 = n-k;
            int tmp2 = func(n,appear_num,repetition,v);
            //cout<<"tmp1: "<<tmp1<<"tmp2: "<<tmp2<<endl;
            end_id = min(tmp1,tmp2);
            for(int j = start_id;j<=end_id;j++){
                if(dq.empty()){
                    dq.push_back(node(j,s[j]));
                    continue;
                }
                node n2 = node(j,s[j]);
                while(!dq.empty()){
                    node n1 = dq.back();
                    if(compare(n1,n2)){
                        dq.pop_back();
                    }else{
                        break;
                    }
                }
                dq.push_back(n2);
            }
            node target = dq.front();
            dq.pop_front();
            char ch = target.ch;
            ret += ch;
            start_id = end_id+1;
            //cout<<"ch:"<<ch<<" start_id:"<<start_id<<" size:"<<dq.size()<<endl;
            k--;
            if(ch == letter && repetition>0){
                repetition--;
                i--;
            }
        }
        while(repetition--){
            ret += letter;
        }
        return ret;
    }
private:
    int func(int n,int appear_num,int repetition,vector<int>& v){
        if(repetition<=0){
            return n-1;
        }else{
            return v[appear_num-repetition+1];
        }
    }   
};

2. 哈希表加数学推导(一般适用于等式的数学推导)

3. 动态规划

3.1类型 :柱状图
接雨水1
柱状图中最大矩形,本题也可以用单调栈,需要分析一下。

4.bitset的使用

大佬题解

5.双指针

适合于求连续区间的长度的问题,即窗口大小问题。
考试最大困扰度

I error on POST request通常是指在发送POST请求时生了输入/输出错误。这个错误可以由多种原因引起。其中一种可能是由于目标服务器无法访问或连接失败导致的。另外,如果使用的是HTTPS协议进行请求,可能会遇到SSL握手异常的问题,这可能是由于远程主机终止了握手导致的。 此外,还有一种可能的情况是在前端开发中使用axios进行跨域请求时可能会出现类似的问题。有时会出现两次请求,第一次是一个OPTIONS请求,然后才是POST或GET请求。这是由于跨域资源共享(CORS)的限制所导致的。浏览器会在发送真正的请求之前先发送一个预检请求(OPTIONS请求),以确认服务器是否允许跨域请求。这是浏览器的安全机制。 综上所述,I/O error on POST request可能是由于目标服务器无法访问、SSL握手异常或CORS跨域请求的限制所导致的。具体的解决方法取决于具体的情况和错误的原因。可以尝试检查网络连接、确认HTTPS证书是否正确、处理CORS跨域请求等来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [I/O error on POST request for “http://localhost:9411/api/v2/spans](https://blog.youkuaiyun.com/qq_37634156/article/details/127083862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [restTemplate发送https请求报错I/O error on POST request for “xxxx“: Remote host terminated the ...](https://blog.youkuaiyun.com/weixin_47390965/article/details/130210114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [解决vue axios跨域 Request Method: OPTIONS问题(预检请求)](https://download.youkuaiyun.com/download/weixin_38545517/14799467)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值