当前位置: 首页 > news >正文

域名注册完成后怎么做网站百度文档怎么免费下vvv

域名注册完成后怎么做网站,百度文档怎么免费下vvv,如何做推广推广技巧,安徽网站设计平台目录 1. 删除字符串中的所有相邻重复项#xff08;简单#xff09; 2. 逆波兰表达式#xff08;中等#xff09; 3. 基本计算器 II#xff08;中等#xff09; 4. 字符串解码#xff08;中等#xff09; 5. 验证栈序列#xff08;中等#xff09; 6. 小行星碰撞…目录 1. 删除字符串中的所有相邻重复项简单 2. 逆波兰表达式中等 3. 基本计算器 II中等 4. 字符串解码中等 5. 验证栈序列中等 6. 小行星碰撞中等 单调栈 1. 每日温度中等 2. 柱状图中最大的矩形困难 3. 最大矩形困难 1. 删除字符串中的所有相邻重复项简单 class Solution { public:string removeDuplicates(string s) {string ans; // 字符串模拟栈这样可以直接输出答案不用把栈转成字符串for (auto ch : s){if (!ans.empty() ch ans.back()){ans.pop_back(); // 出栈}else{ans ch; // 入栈}}return ans;} }; 2. 逆波兰表达式中等 遍历字符串数组 如果遇到操作数将操作数入栈如果遇到运算符将两个操作数出栈其中先出栈的是右操作数后出栈的是左操作数然后计算然后将计算结果入栈 遍历完字符串数组后栈中只有一个元素就是逆波兰表达式的值。 class Solution { public:int evalRPN(vectorstring tokens) {stackint st;for (auto s : tokens){if (s || s - || s * || s /){int right st.top();st.pop();int left st.top();st.pop();st.push(calculate(left, right, s[0]));}else{st.push(stoi(s));}}return st.top(); }private:int calculate(int left, int right, char op){switch (op){case :return left right;case -:return left - right;case *:return left * right;case /:return left / right;default:return 0;}} }; 3. 基本计算器 II中等 先计算乘除后计算加减 当一个数前面是 时该数入栈当一个数前面是 - 时该数的相反数入栈当一个数前面是 * / 时将该数与栈顶元素进行计算并将栈顶元素替换为计算结果 遍历完字符串后栈中所有元素的和就是表达式的值。 class Solution { public:int calculate(string s) {vectorint st; // 数组模拟栈方便最后计算栈中所有元素的和int n s.size();int i 0;char op ;while (i n){if (s[i] ){i;}else if (s[i] 0 s[i] 9){// 将数字提取出来int num 0;while (i n s[i] 0 s[i] 9){num num * 10 (s[i] - 0);}if (op ){st.push_back(num);}else if (op -){st.push_back(-num);}else if (op *){st.back() * num;}else{st.back() / num;}}else{op s[i];i;}}// 计算栈中所有元素的和int ans 0;for (auto e : st){ans e;}return ans;} }; 4. 字符串解码中等 class Solution { public:string decodeString(string s) {stackint nums; // 数字栈stackstring strs; // 字符串栈strs.push();int n s.size();int i 0;while (i n){if (s[i] 0 s[i] 9){// 将数字提取出来int num 0;while (i n s[i] 0 s[i] 9){num num * 10 (s[i] - 0);}// 将数字压入数字栈nums.push(num);}else if (s[i] [){// 将[后面的字符串提取出来i;string str;while (i n s[i] a s[i] z){str s[i];}// 将字符串压入字符串栈strs.push(str);}else if (s[i] ]){// 遇到]时数字栈栈顶k和字符串栈栈顶s是对应的即s重复了k次// 将数字栈栈顶和字符串栈栈顶都出栈// 将s重复了k次后的字符串追加到现在的字符串栈栈顶int k nums.top();nums.pop();string str strs.top();strs.pop();while (k--){strs.top() str;}i;}else{// 将单独的字符串不是[后面的字符串提取出来string str;while (i n s[i] a s[i] z){str s[i];}// 将字符串追加到字符串栈栈顶strs.top() str;}}return strs.top();} }; 5. 验证栈序列中等 遍历数组pushed将pushed的每个元素依次入栈每次将pushed的元素入栈之后如果栈不为空且栈顶元素与popped的当前元素相同则将栈顶元素出栈同时遍历数组popped直到栈为空或栈顶元素与popped的当前元素不同。 遍历数组pushed结束之后每个元素都按照数组pushed的顺序入栈一次。如果栈为空则每个元素都按照数组popped的顺序出栈返回true。如果栈不为空则元素不能按照数组popped的顺序出栈返回false。 class Solution { public:bool validateStackSequences(vectorint pushed, vectorint popped) {stackint st;int i 0; // 用来遍历poppedfor (auto e : pushed){st.push(e);while (!st.empty() st.top() popped[i]){st.pop();i;}}return st.empty();} }; 6. 小行星碰撞中等 使用栈模拟小行星碰撞。 遍历小行星数组asteroids当遍历到小行星e时使用变量alive记录小行星e是否还存在即未爆炸。 当小行星e存在且e 0栈非空且栈顶元素 0时说明两个小行星相互向对方移动 先看e是否存在栈顶元素 -ee存在栈顶元素 -ee爆炸。再看栈顶元素是否存在如果栈顶元素 -e则栈顶元素爆炸执行出栈操作。 重复以上判断直到不满足条件如果最后alive为真说明小行星e不会爆炸则将e入栈。 class Solution { public:vectorint asteroidCollision(vectorint asteroids) { vectorint st; // 数组模拟栈这样可以直接输出答案不用把栈转成数组for (auto e : asteroids){bool alive true;while (alive e 0 !st.empty() st.back() 0){alive st.back() -e; // e 是否存在if (st.back() -e){ st.pop_back();}}if (alive){st.push_back(e);}}return st;} }; 单调栈 1. 每日温度中等 可以维护一个存储下标的单调栈从栈底到栈顶的下标对应的温度列表中的温度依次递减。如果一个下标在单调栈里则表示尚未找到下一次温度更高的下标。 遍历温度数组如果栈不空且当前温度 栈顶对应的温度那么就能知道栈顶那一天下一个更高温度出现在几天后将栈顶出栈循环操作直到不满足“栈不空且当前温度 栈顶对应的温度”的条件此时将当前下标入栈。 遍历完温度数组后留在栈中的下标就是气温在这之后都不会升高不用手动把其在答案数组对应的数置为0因为最开始数组默认用0初始化。 class Solution { public:vectorint dailyTemperatures(vectorint temperatures) {stackint st; // 单调栈int n temperatures.size();vectorint ans(n);for (int i 0; i n; i){while (!st.empty() temperatures[i] temperatures[st.top()]){int index st.top();ans[index] i - index;st.pop();}st.push(i);}return ans;} }; 2. 柱状图中最大的矩形困难 以某根柱子为顶的最大矩形一定是从该柱子向两侧延伸直到遇到比它矮的柱子。 创建一个递增栈遍历高度数组如果当前高度 栈顶元素入栈否则栈顶出栈并计算以栈顶的柱子为顶的最大矩形面积。由于保存在栈中的柱子的高度是递增排序的因此栈中位于栈顶前面的一根柱子一定比位于栈顶的柱子矮于是很容易就能找到位于栈顶的柱子两侧比它矮的柱子。 class Solution { public:int largestRectangleArea(vectorint heights) {int n heights.size();stackint st; // 递增栈st.push(-1);int ans 0;for (int i 0; i n; i){while (st.top() ! -1 heights[st.top()] heights[i]){int height heights[st.top()];st.pop();int width i - st.top() - 1;ans max(ans, height * width);}st.push(i);}while (st.top() ! -1){int height heights[st.top()];st.pop();int width n - st.top() - 1;ans max(ans, height * width);}return ans;} }; 3. 最大矩形困难 将矩阵中上下相邻的值为1的格子看成柱状图中的柱子。假设矩阵有m行n列以矩阵的每行为基线就可以得到m个柱状图然后就可以计算并比较每个柱状图中的最大矩形。 class Solution { public:int maximalRectangle(vectorvectorchar matrix) {int m matrix.size(); // 行int n matrix[0].size(); // 列vectorint heights(n, 0);int ans 0;for (int i 0; i m; i){for (int j 0; j n; j){if (matrix[i][j] 0){heights[j] 0;}else{heights[j];}}ans max(ans, largestRectangleArea(heights));}return ans;}private:int largestRectangleArea(vectorint heights) {int n heights.size();stackint st; // 递增栈st.push(-1);int ans 0;for (int i 0; i n; i){while (st.top() ! -1 heights[st.top()] heights[i]){int height heights[st.top()];st.pop();int width i - st.top() - 1;ans max(ans, height * width);}st.push(i);}while (st.top() ! -1){int height heights[st.top()];st.pop();int width n - st.top() - 1;ans max(ans, height * width);}return ans;} };
http://www.zqtcl.cn/news/125994/

相关文章:

  • 陵水网站建设哪家好建设培训考试服务网站
  • h5视频网站模板中国十大企业培训机构排名
  • 强的网站建设明细报价表网站建设推广新业务
  • 哪里有免费做网站wordpress 在文章前面加序号
  • 263企业邮箱登录入口首页seo公司哪家
  • 哈尔滨建设银行网站岳阳建设网站
  • 中山网页网站设计模板自己做的网站怎么让别人看见
  • 建设装饰网站出口跨境电商平台
  • 陕西网站建设公司排名WordPress图片生成文章
  • t恤定制网站wordpress 分类 seo
  • 万网网站空间多少钱一年做哪些网站流量最大
  • seo网站优化服务网站开发电脑
  • 宿迁怎样建设网站wordpress 分类目录 标签
  • 惠州双语网站建设费用seo搜索工具栏
  • 做ppt会去什么网站找图网页制作与网站建设试题
  • 如何用ai给网站做logo宝安网站制作公司
  • sem是什么职业岗位单页式网站 seo
  • 做网站用什么版本系统国外有哪些设计网站推荐
  • dz论坛怎么做视频网站吗哪些公司是wordpress
  • 在微信怎样搞做微视频网站商城小程序模板源码完整版
  • h5跟传统网站有啥区别读取wordpress最新文章
  • 网站推广120最超值的网站建设
  • 移动网站制作公司如何开公司做网站
  • 网站建设 青海试题wordpress的特点
  • 源码如何做网站宽甸县建设局网站
  • 用dw做的网页怎么连到网站上企业网站备案资料填写单
  • 中文 网站模板企业怎么建设网站
  • 建设户外腰包网站哪个网站注册域名好
  • 六安网站建设价格小学生编程网课前十名
  • 绵阳网站建设信赖辉煌wordpress多账号权限