牛客题霸 [栈和排序] C++题解/答案

题目描述

给你一个1->n的排列和一个栈,入栈顺序给定
你要在不打乱入栈顺序的情况下,对数组进行从大到小排序
当无法完全排序时,请输出字典序最大的出栈序列

题解:

栈的性质是先进后出
当栈中元素大于还没进栈的最大元素时,就存入vector,并弹出栈
maxnum用来记录元素是否入过栈

代码:

class Solution {public:/*** 栈排序* @param a int整型一维数组 描述入栈顺序* @param aLen int a数组长度* @return int整型vector*/vector<int> solve(int* a, int aLen) {// write code hereif(aLen==0)return vector<int>();stack<int> st;vector<int> maxNum(aLen + 1,1);int pos = aLen;vector<int> res;for(int i=0;i<aLen;i++){st.push(a[i]);maxNum[a[i]] = 0;while(maxNum[pos] == 0){pos--;}while(st.size() > 0 && st.top() > pos){res.push_back(st.top());st.pop();}}return res;}
};

牛客题霸 [栈和排序] C++题解/答案相关推荐

  1. 牛客题霸 [表达式求值] C++题解/答案

    牛客题霸 [表达式求值] C++题解/答案 题目描述 请写一个整数计算器,支持加减乘三种运算和括号. 题解: 没有除法emmm 我们从头开始依次判断每个字符 如果是左括号,我们就找右括号,并截取括号内 ...

  2. 牛客题霸 [矩阵元素查找] C++题解/答案

    牛客题霸 [矩阵元素查找] C++题解/答案 题目描述 已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的.设计查找算法返回所查找元素的二元数 ...

  3. 牛客题霸 [字符串的排列] C++题解/答案

    牛客题霸 [字符串的排列] C++题解/答案 题解: stl真好用,emmm... 代码: class Solution {public:vector<string> Permutatio ...

  4. 牛客题霸 [ 验证IP地址] C++题解/答案

    牛客题霸 [ 验证IP地址] C++题解/答案 题目描述 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址 IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围 ...

  5. 牛客题霸 [判断回文] C++题解/答案

    牛客题霸 [判断回文] C++题解/答案 题目描述 给定一个字符串,请编写一个函数判断该字符串是否回文.如果回文请返回true,否则返回false. 题解: 左右两端同时向中间缩 代码: class ...

  6. 牛客题霸 [分糖果问题] C++题解/答案

    牛客题霸 [分糖果问题] C++题解/答案 题目描述 一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下: 每个孩子不管得分多少,起码分到一个糖果. 任意两个相邻的孩子之间,得分较多的孩子必须拿多 ...

  7. 牛客题霸 [合并有序链表] C++题解/答案

    牛客题霸 [合并有序链表] C++题解/答案 题目描述 将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的. 题解: 首先判断l1和l2是否为空 然后依次比较l1和l2的值 ...

  8. 牛客题霸 [二叉树的镜像]C++题解/答案

    牛客题霸 [二叉树的镜像]C++题解/答案 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 题解: 根据题也不难看出,二叉树的镜像定义其实就是左右树翻转 所以我们一直递归左子树,到头后递归右子 ...

  9. 牛客题霸 [ 树的直径] C++题解/答案

    牛客题霸 [ 树的直径] C++题解/答案 题目描述 给定一棵树,求出这棵树的直径,即两个节点距离的最大值. 题解: 不知道大家听没听过一个结论: 树的直径可以通过两边dfs找到 步骤: 1.从任意一 ...

最新文章

  1. APUE(第八章)进程控制
  2. 工作三年,我没给家里一分钱,还把家里掏空了
  3. 售达方、送达方的区别
  4. OpenCV saturate_cast<uchar>函数用法(饱和剔除)(像素限制、溢出滤除、像素设限、防溢出)
  5. 二维码原理--开胃小知识
  6. Uboot启动过程详解
  7. 用vscode可以开发php,【编程开发工具】vscode能够编写php吗
  8. pytorch ——模型创建与nn.Module
  9. OpenGL 法线贴图 切线空间 整理
  10. python使用格式化教程_软件测试教程之python格式化输出format用法
  11. property.js
  12. jquery addClass,removeClass 设置或删除类
  13. 实用软件资源下载地址集合
  14. 电磁屏蔽技术的三种主要方法
  15. 植物大战僵尸阳光金币修改器(外g)c++代码实现
  16. 爬虫第3课 -豆瓣TOP250电影爬取
  17. app分发源码完整­­|免签封装
  18. 苹果手机密码设置在哪里_sim卡密码设置在哪里-sim卡密码设置介绍
  19. SpringBoot导出Jar包并测试(使用IDEA)
  20. matlab激光扩束总结,激光扩束镜的作用原理、基础及应用

热门文章

  1. 这可能是这次疫情最搞笑的事情,可看着看着却鼻酸了
  2. 猪肉上的红章和蓝章有啥不同?| 今日趣图
  3. 有一说一,确实。。 | 今日最佳
  4. 每日一笑 | 终于知道为什么胖了之后气质会垮了
  5. 程序员必知的 Python 陷阱与缺陷列表
  6. 面试问外观模式???这不就是设计模式里面的吗?我给你上一课吧,面试官
  7. 成绩排序 九度教程c语言,九度OJ 1089 数字反转
  8. HTML第八章ppt,第八章 web基础教程之HTML篇v1.0.ppt
  9. makefile 打印变量_[Makefile] 缩进与空格--记录踩过的坑
  10. 算法题目——读书知识点统计问题(POJ-3320)(尺取法)