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

C++每日刷题day2025.7.10

思路就是遇到数字就push进栈,遇到符号就取栈顶俩元素进行对应符号运算再push进栈中,直到栈中只剩一个数字。

class Solution {
public:bool isNumber(string& x){if (x == "+" || x == "-" || x == "*" || x == "/")return false;else return true;}int evalRPN(vector<string>& tokens) {stack<int> st;for (int i = 0; i < tokens.size(); ++i){string& x = tokens[i];if (isNumber(x)) st.push(atoi(x.c_str()));else{int num1 = st.top();st.pop();int num2 = st.top();st.pop();switch (x[0]){case '+' :{st.push(num1 + num2);break;}case '-' :{st.push(num2 - num1);break;}case '*' :{st.push(num1 * num2);break;}case '/' :{st.push(num2 / num1);break;}default:break;}}}return st.top();}
};

来个辅助栈,一个正常的栈,另一个是只存放最小值的栈。

class MinStack {
public:stack<int> st;stack<int> min_st;MinStack() {min_st.push(INT_MAX);}void push(int val) {st.push(val);min_st.push(min(val, min_st.top()));}void pop() {st.pop();min_st.pop();}int top() {return st.top();}int getMin() {return min_st.top();}
};/*** Your MinStack object will be instantiated and called as such:* MinStack* obj = new MinStack();* obj->push(val);* obj->pop();* int param_3 = obj->top();* int param_4 = obj->getMin();*/

我是用了一个堆一个优先级队列,优先级队列用来存放偶数的,栈用来存放奇数的,每次只需要取优先级队列/2再判断是不是偶数即可。

#include <iostream>
#include <stack>
#include <queue>
#include <vector>
using namespace std;int main() {long long n, k;cin >> n >> k;// 使用 vector 动态分配内存vector<long long> a(n);for (int i = 0; i < n; i++) {cin >> a[i];}priority_queue<long long> st;stack<long long> other;for (long long i = 0; i < n; i++) {if (a[i] % 2 == 0) {st.push(a[i]);} else {other.push(a[i]);}}while (st.size() && k--) {long long top = st.top();st.pop();top /= 2;if (top % 2 == 0) st.push(top);else other.push(top);}long long sum = 0;while (!st.empty()) {sum += st.top();st.pop();}while (!other.empty()) {sum += other.top();other.pop();}cout << sum;return 0;
}

http://www.lryc.cn/news/584089.html

相关文章:

  • Python正则表达式实战指南
  • 文件系统----底层架构
  • 【三维生成】FlashDreamer:基于扩散模型的单目图像到3D场景
  • [特殊字符] LLM(大型语言模型):智能时代的语言引擎与通用推理基座
  • pigz 快速压缩与解压缩
  • Windows 与 Linux 内核安全及 Metasploit/LinEnum 在渗透测试中的综合应用
  • 710 Mybatis实战
  • 【JavaScript 中 null 的本质与原型链终点探析】
  • 三、神经网络——网络优化方法
  • WWDC 25 风云再起:SwiftUI 7 Charts 心法从 2D 到 3D 的华丽蜕变
  • 双指针-18.四数之和-力扣(LeetCode)
  • Cocos2.x 热更教程
  • Python(31)PyPy生成器优化深度解析:JIT加速下的Python性能革命
  • 【博主亲测可用】PS2025最新版:Adobe Photoshop 2025 v26.8.1 激活版(附安装教程)
  • CMD,PowerShell、Linux/MAC设置环境变量
  • 搭建自动化工作流:探寻解放双手的有效方案(2)
  • Mac自定义右键功能
  • 【超详细】CentOS系统Docker安装与配置一键脚本(附镜像加速配置)
  • C++11 划分算法原理解析:is_partitioned、partition_copy与partition_point
  • TDengine 数据库建模最佳实践
  • Spring--04--1--AOP自定义注解,记录用户操作日志
  • 【MSSQL】如何清理SQL SERVER内存解决内存占用高的问题
  • 【免费数据】2020年中国高精度耕地范围矢量数据
  • Docker:安装命令笔记
  • 智慧城市网络架构升级与SD-WAN技术应用实践
  • 上海交大医学院张维拓老师赴同济医院做R语言训练营培训
  • QT Android 如何打包大文件到目录下?
  • 【牛客刷题】活动安排
  • 华为鸿蒙HarmonyOpenEye项目:开眼App的鸿蒙实现之旅
  • OpenGL 4. 变换