- IDEA常用快捷键大全
A懿轩A
Java入门到精通javaintellij-idea开发语言
IDEA开发常用的快捷键:快捷键组合实现效果psvm+Tab键/main+Tab键publicstaticvoidmain(String[]args)sout+Tab键System.out.println()Ctrl+X删除当前行Ctrl+D复制当前行Alt+Insert(或右键Generate)生成代码(如get,set方法,构造函数等)Ctrl+/注释光标所在行代码,会根据当前不同文件类型使用
- GIT windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法
whaxkl
学习git
一、常用命令gitconfig--globaluser.email“you@example.com”gitconfig--globaluser.name“YourName”切换到master分支:gitcheckoutmaster1.warning:LFwillbereplacedbyCRLFinapplication.yml.Thefilewillhaveitsorigina解决方法window
- Hot 100总结(1-10)
weixin_51675784
java力扣算法算法数据结构leetcodejava
Hot100总结(逐行注释版)哈希篇1.两数之和用哈希表优化classSolution{publicint[]twoSum(int[]nums,inttarget){//new一个哈希表,键为数组值,值为索引Maphs=newHashMap();for(inti=0;i>groupAnagrams(String[]strs){//new一个哈希表,键是排序后的字符串,值为所有排序为键str的字符串
- C# 中 WebSocket 的详细讲解与实现
江沉晚呤时
NetcoreC#开发语言.netcoremicrosoftc#
WebSocket是一种网络通信协议,特别适用于需要实时双向通信的应用场景。它能够使客户端和服务器之间建立起持久、低延迟的连接,使得数据能够快速双向传输,广泛应用于实时聊天、在线游戏、股票行情更新等场景。在C#中,使用WebSocket的开发也变得相对简单和高效。本文将深入探讨WebSocket的工作原理,并介绍如何在C#中实现WebSocket客户端和服务器。1.什么是WebSocket?Web
- ros2学习【5】:话题以及通信实例(C++和python示例)
宋隽颢
ROS2c++python开发语言
节点与节点之间的交流方式有四种,话题,服务,参数,动作。服务,参数,动作是在话题的基础上组合实现的。所以话题是很基本,很重要的。节点与节目之间话题交流的媒介是消息接口。目录一、C++话题示例:1.发布消息1.2工作空间+构建功能包+新建节点文件1.2:CMakeList的处理1.3:构建+测试2.订阅消息:2.1新建文件turtle_control.cpp2.2:CMakeList的处理2.3:构
- Panda3D 载入角色
bcbobo21cn
图形学和3D3dActor
Panda3D推荐,将模型和动画数据,按照panda.egg、panda-walk.egg,类似这样的方式分开保存;在命令行连续输入命令;将自动绑定模型和动画数据;可查看模型的动画;在Python中有一个Actor类,从DirectObject和NodePath派生而来,用来载入角色及动画;C++没有这样一个类,角色及动画还是使用NodePath实现;参看前文的入门示例代码;图解Panda3D引擎
- Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
fzip
JavaFlinkflink大日志文件
执行hdfs命令查看目录时,控制台上有这么一句警告JVM报错:共享内存文件空间不足df-h以可读性较高的方式来显示磁盘使用信息可以看到主盘已使用100%暴力解决办法:找到对应占用磁盘的文件,然后rm-f,再重启造成大日志文件的程序我的原因是flink的taskmanager的日志很大,删除日志之后需要重新启动flink集群,防止问题重复发生,需要找出taskmanager日志很大的原因:我的原因是
- C++实训练习册(C++之基础语法入门练习题)
白昼57
c++蓝桥杯开发语言
第1关:银行存款计算任务描述本关任务:编写一个能计算银行存款的小程序。相关知识为了完成本关任务,你需要掌握:1.简单的循环语句,2.基本数据类型。编程要求10万元存银行,每年利息3.75%,每年计算一次利息,将本金加上利息作为第二年的本金,求n年后该账户有多少钱。编写程序,要求:输入整数n(表示n年后),输出n年后的账户钱数(保留两位小数)。效果如下:输入:2输出:107640.63开始你的任务吧
- C++实训练习册(C++之基础语法进阶练习题)
白昼57
c++蓝桥杯开发语言
第1关:相同数字不同位数之和任务描述本关任务:编写一个能计算相同数字不同位数之和的小程序。编程要求求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字,最后一项的位数为n。例如用户输入a=1,n=3时表示要求1+11+111。效果如下:输入:12输出:12开始你的任务吧,祝你成功!代码:#includeusingnamespacestd;size_tSum(size_ta,size
- c# post获取小红书列表数据,x-s
乐于分享
c#js
stringurl=DecodeBase64(Request["post"]);//stringjsonData=DecodeBase64(Request["jsonData"]);//WebClientwebClient=newWebClient();ServicePointManager.SecurityProtocol=(SecurityProtocolType)3072;webClient
- c++将字符转换为数字
笑对明天 守望幸福
c++蓝桥杯开发语言
将字符数组中的字符‘1到9转换为整数数字#includeusingnamespacestd;intchnum(chara[]);intmain(){charar[5]={'3','5','3','7','4'};cout='0'&&str[i]#include//头文件usingnamespacestd;intchnum(string);intmain(){stringstr="234";cout
- 蓝桥杯实战应用【工具篇】-C++机器环境配置
林聪木
c++开发语言
目录大赛环境说明1.环境安装2.C/C++参赛选手注意c/c++参赛选手注意事项1.Dev-cpp2.VC++6.0(简版)c/c++组机器环境安装说明1.Dev-cpp安装与设置2.VC++6.0(简版)安装与配置3.安装帮助文档大赛环境说明1.环境安装竞赛环境所用软件均为绿色免安装版本。直接解开压缩即可使用(为防止意外损坏,解压后请不要删除原始压缩包;为了便于选手查找软件,最好解压在同一位置)
- 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解 - 未完善
_Lyz_
蓝桥杯试题算法训练蓝桥杯算法c++
题目:逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中。不过他想到了一个游戏来使他更无聊。他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的情况下长度最长是多少。输入格式:第一行一个数n,表示n个棍子。第二行n个数,每个数表示一根棍子的长度。输出格式:一个数,最大的长度。样例输入:4(回车)1(空格)2(空格)3(空格)1(回车)样例输出:
- Scala
超帅的好吧
笔记
Scala和Java及JVM关系图Javac.class字节码文件编译器Java运行Scala的SDK//1.Java的部分类库//2.特有类库//3.对Java的类库做了包装Scala运行.scala代码Importjava.io_//1可以使用Java的语法(部分)System.out.println(“ok”)//可以//2scala特有的语法和类库vart=(“tom”,100,12.4)
- 最长公共子序列(C++)(动态)
云袅
算法c++
题目描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk}是X的子序列是指存在一个严格递增的下标序列{i1,i2,…,ik},使得对于所有j=1,2,…,k有:Xij=Zj例如,序列z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定两个序
- VO、DTO、POJO、PO和DO 的区别
好似是故人
Java基础状态模式javaspring
在Java开发中,VO、DTO、POJO、PO、DO等概念经常被使用,它们的主要区别在于用途和设计目的。1.VO(ViewObject)——视图对象目的:用于前端展示,通常是后端返回给前端的数据格式。特点:只包含展示需要的字段,可能会组合多个实体的数据不包含业务逻辑可能用于接口返回值示例:publicclassUserVO{privateStringusername;privateStringem
- 每日一题第15届蓝桥杯c/c++本科B组省赛第2题
wen__xvn
蓝桥杯蓝桥杯c++
#include#includeusingnamespacestd;intgcd(inta,intb){if(a
- springMVC 全局异常统一处理
塔塔开!.
java开发语言spring
全局异常处理⽅式⼀:1、配置简单异常处理器配置SimpleMappingExceptionResolver对象:可以在处理异常的⻚⾯获取异常信息${ex}2、使⽤⾃定义异常1.参数异常:/***⾃定义异常:参数异常*/publicclassParamsExceptionextendsRuntimeException{privateIntegercode=300;privateStringmsg="
- PHP在2025年的新趋势与应用
互联网动态分析
php开发语言
性能与现代化PHP在2025年继续其现代化进程,PHP8.x版本带来了显著的性能提升。特别是JIT(即时)编译器的引入,使得PHP在处理复杂应用时接近原生速度。例如,以下PHP代码在PHP8.x中执行速度比旧版本快得多:php复制代码functionfibonacci($n){if($n<=1)return$n;returnfibonacci($n-1)+fibonacci($n-2);}echo
- 深入理解共享内存
beyond667152
android
####深入理解共享内存#####前言>Ashmem即AndroidSharedMemory,是Android提供的一种内存共享的机制。>>java层借助MemoryFile或者SharedMemory>>Native层借助MemoryHeapBase或者MemoryBase,>>Native层调用libc的ashmem_create_region和mmap,即native层都是基于Linux层的
- C#基础(10)变长参数和参数默认值
ling1s
#C#基础c#开发语言
前言作为函数的补充知识点,我们已经学习了ref和out,接下来两节我们继续来讲函数相关的内容。本节则讲解变长参数和参数默认值。函数语法关键字:paramspublicvoidPrintNumbers(paramsint[]numbers){for相关逻辑}注意params关键字后面必须跟数组数组类型可以是任意的类型函数参数可以有别的参数和params关键字修饰的参数函数参数中只能最多出现一个par
- 通过文件描述符(fd)去访问Android共享内存
aaajj
C/C++Linux/UnixAndroid
关于Android共享内存,可以查看下这个资料https://blog.csdn.net/goodlixueyong/article/details/53151959Android中分别提供了C++和Java的访问共享内存的接口Java层使用MemoryFile通过fd去标识共享内存android_os_SharedMemory.cpp里有具体实现Native层使用了binder封装,但是没有提供
- lua面向对象
剑决浮云气
lualua开发语言
1.self,也就是C++语言的this指针localAccount={balance=0}functionAccount.add(this,v)this.balance=this.balance+vendfunctionAccount:sub(v)self.balance=self.balance-vend--[[当我们用.去调用一个函数的时候需要显示的把对象自己传递过去]]Account.ad
- 矩阵对角线求和C++
一半烟火一半诗意.
c++矩阵算法
#includeusingnamespacestd;intmain(){inta[100][100];intn,i,j,
- 《Operating System Concepts》阅读笔记:p483-p488
操作系统
《OperatingSystemConcepts》学习第40天,p483-p488总结,总计6页。一、技术总结1.objectstorage(1)objectstorage管理软件Hadoopfilesystem(HDFS)、Ceph。二、英语总结(生词:1)1.commodity(1)commodity:com-("together,with")+modus("measure,manner",*
- 使用python numpy计算并显示音频数据的频谱信息
番茄老夫子
pythonnumpy开发语言
一概念最近需要用到这个数据。笔者需要,使用Python的numpy库结合scipy和matplotlib库来计算并显示音频数据频谱信息的示例代码。我们将使用scipy.io.wavfile来读取音频文件,numpy进行快速傅里叶变换(FFT)计算频谱,最后用matplotlib来绘制频谱图。二源码解析:importnumpyasnpimportmatplotlib.pyplotaspltfroms
- RuntimeError: object has no attribute sparse_csc_tensor: File “/home/lbilic/anaconda3/envs/diffdock/
海洋 之心
图神经网络pytorch深度学习人工智能图神经网络
文章目录问题描述:原因分析:解决方案:问题描述:使用torch-geometric运行一个图神经网络Demo,出现了如下问题RuntimeError:objecthasnoattributesparse_csc_tensor:File"/home/lbilic/anaconda3/envs/diffdock/lib/python3.9/site-packages/torch_sparse/tens
- C++ 缓存(lru结合lfu)
ShAn DiAn
C++缓存c++数据结构链表
1.ARC(AdaptiveReplacementCache)算法的核心思想LRU(最近最久未使用)算法的主要不足在于它只考虑时间局部性,当遇到突发性的冷数据访问时,可能会将热点数据挤出缓存,造成缓存污染。例如,如果缓存大小为4,当前缓存中有热点数据A、B、C、D,突然有大量冷数据E、F、G、H访问,这些冷数据会依次替换掉热点数据,导致缓存命中率急剧下降。而LFU(最近最少使用)算法虽然考虑了访问
- C++ 学习笔记
ShAn DiAn
学习笔记c++
1.虚函数(VirtualFunction)定义:用virtual声明,允许派生类重写(覆盖)基类函数,实现运行时多态核心特性:动态绑定:通过基类指针/引用调用虚函数时,实际调用的是对象类型的函数(运行时确定)虚函数表(vtable):每个包含虚函数的类有一个虚函数表,存储虚函数地址;对象内存中包含指向该表的指针(vptr)虚析构函数:若基类指针指向派生类对象,基类析构函数必须为虚函数,否则可能导
- 小白工具PDF转换 PDF转图片 超便捷软件 文件格式转换 简单好用效率高
hello_simon
工具效率在线工具网络相关PDF转HTMLpdfwordPDF转wordPDF转html
PDF转换:在线可视化提取PDF分页为JPG、PNG格式小白工具https://www.xiaobaitool.net/files/pdf-images/转换格式与效果:支持将PDF转换为JPG、PNG格式,且能最大限度还原文件,保证转换后的高质量效果,满足了对转换质量有较高要求的用户需求。转换方式:支持单次转换和批量转换,用户可根据实际需求选择,这种灵活的转换方式有效提高了工作效率,无论是处理单
- JAVA基础
灵静志远
位运算加载Date字符串池覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
- keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
- java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
- android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
- zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
- 详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
- spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
- hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
- EJB和javabean的区别
asia007
beanejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
- Struts的action和Result总结
百合不是茶
strutsAction配置Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
- 如何带好自已的团队
bijian1013
项目管理团队管理团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
- Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
- 【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
- 使用代理实现Hibernate Dao层自动事务
白糖_
DAOspringAOP框架Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
- maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
- 编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
- 读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
- [求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
- RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oraclermanfilespersetPARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
- 简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
- 初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
- I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
- 并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
- Spring Security(12)——Remember-Me功能
234390216
Spring SecurityRemember Me记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
- 位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
- nodejs 数据库连接 mongodb mysql
liguangsong
mongodbmysqlnode数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
- java动态编译
olive6615
javaHotSpotjvm动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
- Storm0.9.5的集群部署配置优化
roadrunners
优化storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
- 101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
- zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1