首页 > 其他分享 >代码随想录第12天 | 栈与队列part02(有题目未解决)

代码随想录第12天 | 栈与队列part02(有题目未解决)

时间:2024-06-18 23:33:55浏览次数:14  
标签:12 队列 sum part02 随想录 long str 元素 stack

题目:150. 逆波兰表达式求值

思路:

1.使用栈,存储数字,遇到运算符,则取出栈顶两个数进行运算,结果在存入栈中。

坑:

  1. 加减乘除运算符没有别的技巧,就是if相等 然后 +-*/ ,switch 也可以
  2. 栈使用long long型,int型会溢出
  3. 使用 "+"不是单引号'+',vector<string类型> 不是 vector<char类型>
  4. 编译错误,num1未定义, 作用域问题, if后没加{}
class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<long long  >stack;
        for(auto & str:tokens){//注意引用&
            if(str=="+"||str=="-"||str=="*"||str=="/") {//string类型是双引号""
                long long num1=stack.top();
                stack.pop();
                long long num2=stack.top();
                stack.pop();
                long long  sum=0;
                if(str=="+")  sum=num2+num1;
                if(str=="-")  sum=num2-num1;
                if(str=="*")  sum=num2*num1;
                if(str=="/")  sum=num2/num1;      
                stack.push(sum);
            }else{
                stack.push(stoll(str));//stoll()是string转long long 类型函数
            }
        } 
        return stack.top();
    }
};

补充:

字符串类型转换
1.[数字] 转换 “字符串”
【函数名】
to_string(数字类型); //数字类型 int long float 等
2.“字符串” 转换 [数字]
【函数名】
stoi() 对应 int
stol() 对应 long
stoll() 对应 long long

题目:239. 滑动窗口最大值(二刷题)

思路:

  1. 使用双端队列deque单调队列,将滑动窗口中的值存入队列,一直保持最大值在队首,新添加元素大于队首,则全部删除,反之添加在队首后

坑:

笑鼠,看错三次题。下次好好理解题目

补充:

单调队列:保持单调递减或递增的原则的队列
双向队列deque

  1. 可以在队列的两端进行元素的插入和删除操作,deque是C++STL(标准模板库)中的一种容器,
  2. 包含#include
  3. 常用函数
push_back()//在队列的尾部插入元素。
emplace_front()//与push_front()的作用一样 
push_front()//在队列的头部插入元素。
emplace_back()//与push_back()的作用一样 
pop_back()//删除队列尾部的元素。
pop_front()//删除队列头部的元素。
back()//返回队列尾部元素的引用。
front()//返回队列头部元素的引用。
clear()//清空队列中的所有元素。
empty()//判断队列是否为空。
size()//返回队列中元素的个数。
begin()//返回头位置的迭代器
end()//返回尾+1位置的迭代器
rbegin()//返回逆头位置的迭代器 
rend()//返回逆尾-1位置的迭代器 
insert()//在指定位置插入元素 
erase()//在指定位置删除元素 

题目:347.前 K 个高频元素(二刷题)

思路:

坑:

补充:

今日总结

标签:12,队列,sum,part02,随想录,long,str,元素,stack
From: https://www.cnblogs.com/bamboo2233/p/18253371

相关文章

  • 代码随想录 算法训练营day11 Leetcode150 逆波兰表达式求值 Leetcode239 滑动窗口最大
    Leetcode150逆波兰表达式求值题目链接栈classSolution{publicintevalRPN(String[]tokens){Deque<Integer>stack=newLinkedList();for(Strings:tokens){if("+".equals(s)){//leetcode内置jdk的问题,不能使用==......
  • P1255洛谷
    #include<bits/stdc++.h>#include<math.h>#include<cmath>usingnamespacestd;constintmaxn=5050;structBigInt{  inta[maxn];  intlen;  BigInt(){len=1;memset(a,0,sizeofa);}  BigInt(char*s){    len=strlen(s);  ......
  • centos7 安装 python3.12
    准备工作yuminstallcentos-release-sclsclenabledevtoolset-11bashwgethttps://www.python.org/ftp/python/3.12.4/Python-3.12.4.tgz编译注意是在scl环境下进行的,gcc版本过低的环境会导致编译失败tar-zxfPython-3.12.4.tgzcdPython-3.12.4./configure--pr......
  • 代码随想录算法训练营第四十一天 | 0-1背包问题
    46.携带研究材料二维数组题目链接文章讲解视频讲解动态规划五部曲:dp[i][j]:下标i表示背包装0-i的物品(任取),j表示当前背包的最大容量,dp[i][j]表示容量为j时,装0-i的物品的最大价值递推公式:dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i])dp[i-1][j]表示j......
  • 代码随想录第四十一天 | 59.斐波那契数列,70.爬楼梯,71.使用最小花费爬楼梯
     59.斐波那契数列看完想法:虽然是最简单的动态规划问题,但还是要按照五部曲来分析intfib(intn){if(n<=1)returnn;vector<int>dp(n+1);//用n+1的原因是,定义数组时这个意思是数组的长度,n+1的话最后一个就是dp[n]dp[0]=0;......
  • PCIe 7.0首次引入光学:满血带宽高达512GB/s
    PCIe6.0标准规范于2022年初正式发布,至今尚未商用落地,而新一代PCIe7.0已经徐徐走来,首次引入光学通信连接。PCIe6.0被认为是PCIe问世近20年以来变化最大的一次,信号调制机制改为PAM4,配套支持FEC前向纠错机制、FLIT流量控制单元编码,带宽继续翻番,x16双向可达256GB/s。但是到了这里......
  • 漏洞复现之CVE-2012-1823(PHP-CGI远程代码执行)
    关于CGI知识点CGI模式下的参数:-c指定php.ini文件的位置-n不要加载php.ini文件-d指定配置项-b启动fastcgi进程-s显示文件源码-T执行指定次该文件-h和-?显示帮助题目如下图,没有什么发现目录扫描一下dirsearch-uhttp://47.96.234.169:32349/发现info.php,直接......
  • 6.12
    Android项目packagecom.example.camera.pojo;importjava.util.Date;publicclassPolicy{privateLongid;privateStringname;privateStringtype;privateStringcategory;privateStringrange;privateStringdocument;privateStringfo......
  • 嵌入式 Linux 基础:环境配置(Debian 12 安装配置)
    目录一、安装虚拟机1、安装VMwareWorkstationPro注册博通官网注册账号下载VMwareWorkstationPro2、虚拟机安装Debian12下载Debian12镜像虚拟机设置配置(安装)debian12配置debian12环境3、配置Debian12软件设置Flatpak和Flathub安装微信二、其他开发环境配置一、安......
  • 12k star 项目 cmake-examples 阅读和点评
    12kstar项目cmake-examples阅读和点评Author:ChrisZZTime:2024.06.17目录12kstar项目cmake-examples阅读和点评项目概要01-basicA-hello-cmakeB-hello-headersC-static-libraryD-shared-libraryE-installingF-build-typeG-compile-flagsH-third-party-libraryI-compi......