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

山西省住房和城乡建设厅官方网站广告策划书

山西省住房和城乡建设厅官方网站,广告策划书,centos做网站服务器,如何通过网站做调查问卷目录 一、用栈实现队列二、用队列实现栈三、有效的括号四、删除字符串中的所有相邻重复项五、逆波兰表达式求值六、滑动窗口最大值七、前 K 个高频元素 一、用栈实现队列 Leetcode 232 class MyQueue { public:stack<int> in, out;MyQueue() {}void push(int x) {in.pu…

目录

  • 一、用栈实现队列
  • 二、用队列实现栈
  • 三、有效的括号
  • 四、删除字符串中的所有相邻重复项
  • 五、逆波兰表达式求值
  • 六、滑动窗口最大值
  • 七、前 K 个高频元素

一、用栈实现队列

Leetcode 232

class MyQueue {
public:stack<int> in, out;MyQueue() {}void push(int x) {in.push(x);}int pop() {if (out.empty()) while (!in.empty())out.push(in.top()), in.pop();int res = out.top();out.pop();return res;}int peek() {int res = this->pop();out.push(res);return res;}bool empty() {return in.empty() && out.empty();}
};

二、用队列实现栈

Leetcode 225

两个队列:

class MyStack {
public:queue<int> que1, que2; // que2用于备份que1MyStack() {}void push(int x) {que1.push(x);}int pop() {int cnt = que1.size();cnt -- ;while (cnt -- )que2.push(que1.front()), que1.pop();int res = que1.front();que1.pop();que1 = que2;while (!que2.empty()) que2.pop();return res;}int top() {return que1.back();}bool empty() {return que1.empty();}
};

一个队列:

class MyStack {
public:queue<int> que;MyStack() {}void push(int x) {que.push(x);}int pop() {int cnt = que.size();cnt -- ;while (cnt -- )que.push(que.front()), que.pop();int res = que.front();que.pop();return res;}int top() {return que.back();}bool empty() {return que.empty();}
};

三、有效的括号

Leetcode 20

class Solution {
public:bool isValid(string s) {if (s.size() % 2) return false;stack<char> st;for (int i = 0; i < s.size(); i ++ ) {char c = s[i];if (c == '(') st.push(')');else if (c == '{') st.push('}');else if (c == '[') st.push(']');else if (st.empty() || st.top() != c) return false; // 为空或者不匹配else st.pop(); // 相等}return st.empty();}
};

四、删除字符串中的所有相邻重复项

Leetcode 1047

开辟一个栈:

class Solution {
public:string removeDuplicates(string s) {stack<char> st;for (char c: s) if (st.empty() || c != st.top()) st.push(c);else st.pop();string res = "";while (!st.empty())res += st.top(), st.pop();reverse(res.begin(), res.end());return res;}
};

直接使用字符串作为栈:

class Solution {
public:string removeDuplicates(string s) {string res;for (char c: s) if (res.empty() || res.back() != c) res.push_back(c);else res.pop_back();return res;}
};

五、逆波兰表达式求值

Leetcode 150

class Solution {
public:int evalRPN(vector<string>& s) {stack<long long> st;for (int i = 0; i < s.size(); i ++ )if (s[i] == "+" || s[i] == "-" || s[i] == "*" || s[i] == "/") {long long a = st.top(); st.pop();long long b = st.top(); st.pop();if (s[i] == "+") st.push(b + a); if (s[i] == "-") st.push(b - a); // 注意顺序if (s[i] == "*") st.push(b * a);if (s[i] == "/") st.push(b / a);} else st.push(stoll(s[i]));int res = st.top(); st.pop();return res;}
};

六、滑动窗口最大值

Leetcode 239

单调队列经典题目,具体实现看参考文章

这个题目参考文章里面使用了库 deque 方便再前后两端进行操作,但是这里可以直接使用一个数组 q q q 代替,效率更高,数组 q q q 的作用是队列中队头和队尾的位置。

class Solution {
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {int n = nums.size();vector<int> q(n, 0), res;int hh = 0, tt = -1;for (int i = 0; i < n; i ++ ) {if (hh <= tt && i - k + 1 > q[hh]) hh ++ ;while (hh <= tt && nums[q[tt]] <= nums[i]) tt -- ;q[ ++ tt] = i;if (i - k + 1 >= 0) res.push_back(nums[q[hh]]);}return res;}
};

七、前 K 个高频元素

Leetcode 347

使用优先队列(披着队列外衣的堆),如果使用的是大顶堆,每次弹出堆顶最大的一个数,就不能保证题目找出频率最高的 k k k 个数,而且使用大顶堆每次要对整个堆进行排序,浪费时间。如果是使用小顶堆,每次仅保留 k k k 个频率最高的元素在堆里面,就需要只对 k k k 个元素进行排序,节省时间开销。

class Solution {
public:// 小顶堆class mycomparison{public:bool operator() (const pair<int, int>& lhs, const pair<int, int>& rhs) {return lhs.second > rhs.second;}};vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int, int> mp; // <元素,频率>for (int c: nums) mp[c] ++ ;priority_queue<pair<int, int>, vector<pair<int, int>>, mycomparison> pri_que; // 小顶堆for (auto it = mp.begin(); it != mp.end(); it ++ ) {pri_que.push(*it);if (pri_que.size() > k) pri_que.pop();}vector<int> res(k);for (int i = k - 1; i >= 0; i -- )res[i] = pri_que.top().first, pri_que.pop();return res;}
};
http://www.dinnco.com/news/23601.html

相关文章:

  • 长沙优化网站哪家公司好淘宝推广公司
  • 企业网站怎么做两种语言中国联通腾讯
  • 咨询机构怎么做优化关键词
  • 青岛注册公司费用我们seo
  • 湖南网站建设网全球十大搜索引擎排名及网址
  • 深圳做网站的公司哪家好信息流广告投放平台
  • 泰安手机网站建设电话网络营销案例实例
  • 网站选择空间朝阳seo建站
  • 成都网站建设怎样创建网站
  • 深圳高端网站建设广州网站优化运营
  • 哪里网站做的好网络营销方式
  • 安阳做网站电话营销活动策划方案
  • 织梦网站打开慢代理推广月入5万
  • 网站建设代理加盟seo知识培训
  • 徐州网络建站模板百度客服人工电话95188
  • 网站建设开发的规划流程关键词整站排名优化
  • 金螳螂装饰公司国内排名网站seo优化报告
  • 给网站做rssgoogle推广服务商
  • 做网站赚钱吗?百度网址安全中心
  • 南阳教育论坛网站建设网推怎么推广
  • 广西建设监理协会网站百度推广效果
  • 萧山住房和城乡建设委员会网站百度自助建站官网
  • 网站数据丢失了做数据恢复需多久com网站域名注册
  • 做网站沈阳本地推广公司是做什么的
  • 做外贸的网站有哪些义乌百度广告公司
  • 网络优化网站建设学习南京网页搜索排名提升
  • 专门做美妆的网站培训心得体会300字
  • 网站用的横幅广告怎么做深圳华强北
  • 网站建设合同要交印花税吗爱站网长尾词挖掘工具
  • 上海自助建站企业企业网站制作开发