首页 > 其他分享 >Day 10 逆波兰表达式求值,滑动窗口的最大值,前k个高频词

Day 10 逆波兰表达式求值,滑动窗口的最大值,前k个高频词

时间:2024-07-10 19:30:03浏览次数:19  
标签:10 高频词 map int ++ pop push que 求值

逆波兰表达式求值

逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。

#include<iostream>
using namespace std;
#include<stack>
string s;
int main()
{
	string s;
	cin >> s;
	stack<int>u;
	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] == '+' || s[i] == '-' || s[i] == '*' || s[i] == '/')
		{
			int num1 = u.top();
			u.pop();
			int num2 = u.top();
			u.pop();
			if (s[i] == '+')
			{
				u.push(num1 + num2);
			}
			if (s[i] == '-')
			{
				u.push(num2 - num1);

			}
			if (s[i] == '*')
			{
				u.push(num1 * num2);
			}
			if (s[i] == '/')
			{
				u.push(num2 / num1);
			}
	    }
		else
		{
			u.push(s[i]-'0');
		}
	}
	int result = u.top();
	cout << result;
}

滑动窗口的最大值

#include<iostream>
#include<vector>
using namespace std;
#include<deque>
vector<int>v;
class mydeque
{
public:
	mydeque(){}
	
	deque<int>u;
	void pop(int x)
	{
		if (!u.empty() && x == u.front())
		{
			u.pop_front();
		}
	}
	void push(int x)
	{
		while (!u.empty() && x > u.back())
		{
			u.pop_back();
		}
		u.push_back(x);
	}
	void getmax()
	{
		v.push_back(u.front());
	}

};
int main()
{
	
	int k;
	cin >> k;
	int n;
	cin >> n;
	vector<int>z;

	while (n--)
	{
		int num;
		cin >> num;
		z.push_back(num);
	}
	mydeque w;
	for (int i = 0; i < k; i++)
	{
		w.push(z[i]);
		
	}
	w.getmax();
	for (int i = k; i < z.size();i++)
	{
		w.pop(z[i - k]);
		w.push(z[i]);
	
		w.getmax();
	}
	for (int i = 0; i < v.size(); i++)
	{
		cout << v[i] << " ";
	}
}

前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> map; // map<nums[i],对应出现的次数>
        for (int i = 0; i < nums.size(); i++) {
            map[nums[i]]++;
        }

        // 对频率排序
        // 定义一个小顶堆,大小为k
        priority_queue<pair<int, int>, vector<pair<int, int>>, mycomparison> pri_que;

        // 用固定大小为k的小顶堆,扫面所有频率的数值
        for (unordered_map<int, int>::iterator it = map.begin(); it != map.end(); it++) {
            pri_que.push(*it);
            if (pri_que.size() > k) { // 如果堆的大小大于了K,则队列弹出,保证堆的大小一直为k
                pri_que.pop();
            }
        }

        // 找出前K个高频元素,因为小顶堆先弹出的是最小的,所以倒序来输出到数组
        vector<int> result(k);
        for (int i = k - 1; i >= 0; i--) {
            result[i] = pri_que.top().first;
            pri_que.pop();
        }
        return result;

    }
};

标签:10,高频词,map,int,++,pop,push,que,求值
From: https://blog.csdn.net/lxy2966201752/article/details/140205278

相关文章

  • 闲话 24.7.10
    闲话啊,zzz真好玩啊!慢热型,战斗非重点,美术风格超赞。如果不排斥米家f2p游戏,推荐大家玩一玩。我是冲着妹妹去的未来会补一些杨表公式的证明。现在先咕!推歌:辰砂byLicisetal.feat洛天依AI增补:另类杨图对应杨表计数前置知识:杨表什么是另类?不是一般的杨图,就是另类的杨图......
  • 题解:P10732 [NOISG2019 Prelim] Palindromic FizzBuzz
    题解:P10732[NOISG2019Prelim]PalindromicFizzBuzz题意题意十分明了,给予你一个区间,判断区间中每一个数是否是回文数。思路思路比较简单,首先将每一个数按每一位放入一个数组中,顺序无论由前到后和由后到前都可以。接下来将数组折半循环,判断前后是否一样。一样的话是回文数,......
  • 12bit 两通道5.2G或单通道10.4G pcie采集卡
    12bit两通道5.2G或单通道10.4Gpcie采集卡是一款同时支持交流耦合与双极性宽带信号输入的高精度高速数据采集卡,它提供12位双通道5.2GS/s或单通道10.4GS,A/D采样变换,全功率模拟带宽(-3dB)8GHz。板载FPGA具备实时信号处理能力,板载DDR4内存容量达8GB,可以进行大数据量的实时信号处理,这......
  • SMU Summer 2024 Contest Round 3(7.10)
    寻找素数对思路:数的范围为10000,直接筛出所有范围内的质数,n2的枚举所有质数对和的情况#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definePIIpair<int,int>constintN=1e4+5;vector<int>pri;intidx,st[N];voidinit(){for(in......
  • Linux (10) 配置HAProxy,实现负载均衡器的主备模式
    《WindowsAzurePlatform系列文章目录》 最近有1个客户需求,在这里记录一下。客户提出需要使用Azure负载均衡器(四层负载均衡器),实现主备模式。场景是负载均衡器后有2台虚拟机-平时100%的流量都发送到第一台虚拟机-如果第一台虚拟机发生......
  • 1172:求10000以内n的阶乘
    1172:求10000以内n的阶乘时间限制:1000ms      内存限制:65536KB提交数:51446   通过数: 16810【题目描述】求1000010000以内n的阶乘。【输入】只有一行输入,整数n(0≤n≤100000)。【输出】一行,即n!的值。【输入样例】4【输出样例】24#include<......
  • Python教程:Pandas数据转换编码的10种方式
    1.构建测试数据集importpandasaspdimportnumpyasnpdf=pd.DataFrame({'Sex':['M','F','M','M','M','F','M','F','F','F'],'Cou......
  • GBPC5010-ASEMI逆变箱专用GBPC5010
    编辑:llGBPC5010-ASEMI逆变箱专用GBPC5010型号:GBPC5010品牌:ASEMI封装:GBPC-4批号:2024+现货:50000+最大重复峰值反向电压:1000V最大正向平均整流电流(Vdss):50A功率(Pd):大功率芯片个数:4引脚数量:4类型:整流方桥、整流桥正向浪涌电流:400A正向电压:1.20V封装尺寸:如图工作温度......
  • 初创芯片公司非常疯狂,将CPU性能提高100倍
    初创芯片公司非常疯狂,将CPU性能提高100倍[http://mp.weixin.qq.com/s?__biz=Mzg2NDgzNTQ4MA**&mid=2247741576&idx=5&sn=733a2dffecbfd99e41e97e93e204b2cb&chksm=ce6e327ff919bb691bf4e3ed418f27d816846b1c577477d5d7f063c103e01d9d4cbeca47195b&mpshare=1&scen......
  • 初创芯片公司非常疯狂,将CPU性能提高100倍
    初创芯片公司非常疯狂,将CPU性能提高100倍[http://mp.weixin.qq.com/s?__biz=Mzg2NDgzNTQ4MA**&mid=2247741576&idx=5&sn=733a2dffecbfd99e41e97e93e204b2cb&chksm=ce6e327ff919bb691bf4e3ed418f27d816846b1c577477d5d7f063c103e01d9d4cbeca47195b&mpshare=1&scen......