自学内容网 自学内容网

代码随想录day11

150逆兰式求表达式的值

注意

1.stoll可以把字符串转化成long int,long long int

2.取出两个数字都要弹出,注意顺序["4", "13", "5", "/", "+"],(4 + (13 / 5)) = 6

  5 13 4| m=5,n=13,n/m

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<long long > st;
        for(int i=0;i<tokens.size();i++){
            //如果是数字就入栈,运算符就取出两个数字进行
            if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/")
            {long long m=st.top(); 
            st.pop(); 
            long long n=st.top();
            st.pop();
           if(tokens[i]=="+") st.push(m+n);
           if(tokens[i]=="-") st.push(n-m);
           if(tokens[i]=="*") st.push(m*n);
            if(tokens[i]=="/") st.push(n/m);}
           else{
                st.push(stoll(tokens[i]));
            }}
           long long res=st.top();
            return res;
        
    }
};
  • 239. 滑动窗口最大值

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

1.自己定义一个类去实现一个队列,采用deque

2.定义vector去记录结果

class Solution {
public:

    class myqueue{
    public:
    
       deque<int> que;//采用deque做队列底层的数据结构
       
       //弹出,当队列不是空的时候,如果要弹出的数是队列前面的数
      void pop(int value){
        if(!que.empty()&&value==que.front())
        que.pop_front();
      }
     //和最后的元素进行比较,如果大于一直弹出,小于的话直接加入队伍尾部
     //将value加入到对尾部,确保最大值在队列前面
      void push(int value){
       while (!que.empty()&&value>que.back()){
            que.pop_back();
        }
        que.push_back(value);
      }

      int front(){
        return que.front();
      }
        
    };
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        myqueue que;
        vector<int> res;
        //将K个元素加入到队列里面
        for(int i=0;i<k;i++){
            que.push(nums[i]);
        }
         res.push_back(que.front());
        //滑动窗口
        for(int i=k;i<nums.size();i++){
            que.pop(nums[i-k]);
            que.push(nums[i]);
            res.push_back(que.front());
        }
        return res;
        
    }
};


原文地址:https://blog.csdn.net/weixin_57491824/article/details/145230917

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!