- [【DevOps】调用 Jenkins 的 API 接口时出现 HTTP 403 错误
阿寻寻
devopsjenkinshttp
调用Jenkins的API接口时出现HTTP403错误1.**检查身份验证信息**a.**API令牌**b.**BasicAuth**2.**检查用户权限**a.**确保用户有足够的权限**3.**检查CSRF防护设置**a.**禁用CSRF**b.**提供CSRFToken**4.**网络配置和代理问题**a.**检查代理设置**5.**其他常见问题**总结当调用Jenkins的API接口时出现
- Node.js总结
会飛的魚,
node.js
文章目录node的知识点1.node的外层有一个函数2.node全局global3.node的事件循环4.Buffer缓冲器5.简单文件的读写6.流式文件的读写7.原生服务器8.mysql数据库语句9.mysql数据库的连接10.mogodb数据库连接11.express服务器12.http协议简介13.express中的request和response14.中间键的简介15.常用的第三方中间件1
- Ubuntn安装Xfce桌面环境
c12th
实用小技巧分享服务器经验分享ubuntu
原文:https://blog.c12th.cn/archives/11.html前言最近搞了台云服务器(2H2G)玩玩,其实一直想挂一些奇奇怪怪的东西到服务器?就装了Xfce,搭了个vnc来实现远程桌面。服务器系统为Ubuntu-20.04原教程源自Mintimate大佬效果展示教程准备工作去服务器安全组放行5901端口准备SSH连接工具或在宝塔终端连接服务器更新依赖包#更新/重载源sudoap
- 解决Butterfly主题图标不显示问题
c12th
实用小技巧分享经验分享其他
文章目录原文:https://blog.c12th.cn/archives/4.html前言解决方法主题4.3.0及以上主题4.2.0及以上方法之一主题4.2.0以下方法一(不推荐)方法二(推荐)补充原文:https://blog.c12th.cn/archives/4.html前言五天前jsdelivr突然不能用了,导致一些借助cdn加速的资源也用不了了,现在jsdelivr也是属于不稳定的状态
- 【Android】最好用的网络库:Retrofit
愿相知
网络retrofit
最好用的网络库:Retrofit文章目录最好用的网络库:RetrofitRetrofit的基本用法Retrofit的使用逻辑Retrofit的基本操作处理复杂的接口地址类型进阶删除提交header中指定参数Retrofit构建器的最佳写法Retrofit的使用封装Retrofit的基本用法Retrofit是一款由Square公司开发的网络库,但是它和OkHttp的定位完全不同。OkHttp侧重的是
- harmonyos鸿蒙,HarmonyOS鸿蒙入门篇
丁丁TINTIN
harmonyos鸿蒙
这几天鸿蒙系统起来了。开源,全场景。鸿蒙系统又是什么,官网有:HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。华为开发者联盟论坛https://developer.huawei.com/consumer/鸿蒙官
- 什么是数据库 DevOps?
Bytebase
数据库运维DBA开发者数据库管理DevOps
原文地址https://www.bytebase.com/blog/what-is-database-devops/在深入研究数据库DevOps之前,先回顾一下什么是DevOps。它没有统一的定义,但我们知道它起源于软件开发方法与部署和运维的结合。大约2007年和2008年,软件开发和IT界人士提出了这样的担忧:两个行业的分离,即编写和创建软件与部署和支持软件的人员完全分离,正在给行业带来致命的功
- LeetCode练习题解 - Java版
来自火星的猫
LeetCode练习
记录一下练习的过程。菜鸟练习(*・ω・)✄╰ひ╯反正结果是出来了。1.两数之和:https://blog.csdn.net/qq_41043982/article/details/1060948822.两数相加:https://blog.csdn.net/qq_41043982/article/details/1061034253.无重复字符的最长子串:https://blog.csdn.net/
- 利用LeetCode练习Java基础
FOX有爱
Java
LeetCode题目:题目链接:https://leetcode-cn.com/problems/reverse-integer/题目描述整数反转给你一个32位的有符号整数x,返回x中每位上的数字反转后的结果。如果反转后整数超过32位的有符号整数的范围[−231,231−1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。示例1:输入:x=123输出:321示例2:输入:x=-123输
- 高德地图react-native-amap3d的使用
孟宪磊mxl
reactnativeandroidreact.js
在这里简单给大家介绍一下react-native-amap3d的环境配置和使用案例更多功能可查看https://github.com/qiuxiang/react-native-amap3d首先npminstallreact-native-amap3dcdios&&podinstall&&cd..Android环境配置:路径:android/app/src/main/AndroidManifest
- 推荐:React Native 邮件组件 —— react-native-mail
乌昱有Melanie
推荐:ReactNative邮件组件——react-native-mailreact-native-mailAwrapperontopofMFMailComposeViewControllerfromiOSandMailIntentonandroid项目地址:https://gitcode.com/gh_mirrors/re/react-native-mail在移动应用开发中,集成发送邮件功能是一
- vue+moment转化日期格式为年月日时分秒!最简洁版
暴富的Tdy
vue.js前端javascript
文章目录概要整体架构流程所用组件技术细节小结概要全局实行格式化日期,让你告别冗余处理时间代码整体架构流程使用moment插件实现官网:https://momentjs.cn/所用组件vue2moment技术细节首先执行npminstallmoment--save然后在main.js添加以下代码importmomentfrom'moment'//如果你的main.js每个组件都要vue.use那就加
- Vue组件开发系列之Model遮罩层组件
vue爱好者
组件源码:https://github.com/AntJavascript/widgetUI/tree/master/model20181030_111804.gif组件结构:代码分析:props参数:props:{opacity:{//组件透明度type:Number,default:()=>{return0.3;}},zIndex:{//组件层级type:Number|String,defau
- 新手python爬虫代码-适合新手的Python爬虫小程序
weixin_37988176
介绍:此程序是使用python做的一个爬虫小程序?爬取了python百度百科中的部分内容,因为这个demo是根据网站中的静态结构爬取的,所以如果百度百科词条的html结构发生变化需要修改部分内容。词条链接?http://baike.baidu.com/item/Python逻辑步骤:1.主程序部分,主要初始化程序中需要用到的各个模块分为(1)链接管理模块。(2)链接下载保存模块?(3)解析网页模块
- RH2288v3常用的知识
weixin_34015336
java
1.RH2288v3的ibmc管理口的ip地址ibmc管理口的ip地址:192.168.2.100用户名:root密码:Huawei12#$2.RH2288Hv5的ibmc管理口的ip地址ibmc管理网口地址:192.168.2.100用户名:Administrator密码:Admin@9000转载于:https://www.cnblogs.com/SmallandGig/p/11045177.h
- Redis入门篇 - CentOS 7下载、安装Redis实操演示
ChineHe
Redisrediscentos数据库
文章记录了在CentOS7上,通过源码的形式,下载安装Redis的操作过程进入要安装Redis的目录cd/usr/local下载源码压缩包wgethttps://download.redis.io/redis-stable.tar.gz#不同版本可能地址不同下载完成后,使用ll命令检查,可以看到下载的压缩包:下载完成后,解压下载的压缩包tar-xzvfredis-stable.tar.gz解压完成
- Windows Linux子系统下编译LinPhone SDK
毫厘微
LinPhoneLinPhone环境配置代码下载编译环境配置LinPhoneSDK编译环境配置编译环境:Windows10WSL2Ubuntu20.04子系统代码下载gitclonehttps://gitlab.linphone.org/BC/public/linphone-sdk.gitcdlinphone-sdkgitsubmoduleupdate--init--recursive编译环境配置
- halo主题开发环境搭建
该账号已被封禁丨
halo
halo主题开发环境搭建|LogDicthttps://www.logdict.com/archives/halozhu-ti-kai-fa-huan-jing-da-jian
- 每日一题02:什么是Java的多态特性?
mikey棒棒棒
java开发语言
总结于面试鸭:http://www.mianshiya.com多态其实是一种抽象行为,它的主要作用是让程序员可以面对抽象编程而不是具体的实现类,这样写出来的代码扩展性会更强。大家可能不是很理解什么是抽象什么是具体,我举个可能不是很恰当,但是很好理解的例子:比如某个人很喜欢吃苹果,我们在写文章描述他的时候可以写他很喜欢吃苹果,也可以写他很喜欢吃水果。水果就是抽象,苹果就是具体的实现类。假设这个人某天
- 【Spring Boot 3】【Web】同时启用 HTTP 和 HTTPS
又言又语
Springspringboothttphttps
【SpringBoot3】【Web】同时启用HTTP和HTTPS背景介绍开发环境开发步骤及源码工程目录结构背景软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时间精力。因此本文旨在通过一篇文章即能还
- vue3项目使用EventSource实现流式输出例如滚动日志
夏与冰
javascript前端vue
前言之前接触的通信方式主要是HTTP请求和WebSocket,这次有机会了解到EventSource,记录一下。简介EventSource是一个浏览器端用于接收服务器推送事件(Server-SentEvents,SSE)的JSAPI。与WebSocket不同,SSE是单向的(服务器到客户端),适用于更新频率不高的实时通知、消息推送等场景。基本用法创建连接consteventSource=newEv
- 解释 RESTful API,以及如何使用它构建 web 应用程序。
WangLinXX
学习restful前端后端
RESTfulAPI是一种基于HTTP协议的应用程序编程接口(API)设计风格,旨在实现资源的统一、无状态和可扩展的访问。REST表示"RepresentationalStateTransfer"(表述性状态转移),它通过使用HTTP动词(GET、POST、PUT、DELETE等)和URI(统一资源标识符)来对资源进行操作和访问。RESTfulAPI的设计原则包括以下几点:使用HTTP动词来表示操
- openfeign服务间调用,获取初始请求的真实IP
SheldonChang
javaopenfeign
步骤如下:在调用OpenFeign远程服务前,需要将HttpServletRequest对象注入到当前线程中,可以使用过滤器或拦截器来实现。以下是使用拦截器的示例代码:publicclassFeignInterceptorimplementsRequestInterceptor{@AutowiredprivateHttpServletRequestrequest;@Overridepublicvo
- md5哈希算法 c语言,MD5哈希算法(C语言实现)
旋风1968
md5哈希算法c语言
MD5哈希算法(C语言实现)主要是做个记录,害怕以后代码丢了,先放到这里了。MD5暂时就不进行介绍了,最基础的哈希算法,网上到处都是。转载请注明出处:https://www.cnblogs.com/wangyanzhong123/p/13784318.html说明这个版本用了很多位运算,也没有添加注释,所以可能阅读起来会有一些困难。但是可以保证的是结果一定是正确的,并且速度也是经过优化的,应该会很
- 我的大二上
龙渊客
这一学期结束了,今天晚上就回家自己盘一下这学期的得失:学习上:计算机网络、计算机组成原理、数据库、线性代数、马克思原理基本概述、大学物理二都来了,感觉这一学期的任务是比上一学期加大,且沉重的。这些课程,要么专业课,要么必修课,自己认为对于这些课程,我并没有丝毫的放松,基本上都能全力以赴。但有些东西,还是我不能及的。有些人能在一周之内学完所有课程,耗费的是休息时间和取消平时的享乐。我则是慢热行的,慢
- Nginx的基本使用指南
小于负无穷
nginx运维学习ubuntu
Nginx(发音为"enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。由于其高效的资源利用和强大的并发处理能力,Nginx被广泛用于Web服务器、负载均衡器和反向代理服务器中。本文将介绍Nginx的基本安装、配置及其在日常开发中的简单使用场景。一、Nginx的安装1.1安装前的准备在安装Nginx之前,确保您的系统已经安装了以下依赖包:GCC
- Centos7 安装redis及其入门使用
标配的小号
centos7软件/服务安装redis
wget-chttp://download.redis.io/releases/redis-3.2.9.tar.gz#下载源码tar-xvfredis-3.2.9.tar.gz#解压cdredis-3.2.9/make#编译makeinstall#安装./utils/install_server.sh#安装并启动服务ps-ef|grepredis/etc/init.d/redis_6379star
- CentOS7下安装Redis
tdabin
Linuxtdb.ddd学习redis缓存centos
CentOS7下安装Redis本文介绍在CentOS7下安装Redis的最新稳定版本7.0.12。1.下载redis安装包Redis下载地址:https://redis.io/download/,或者使用命令直接下载:cd/usr/download/wgethttp://download.redis.io/releases/redis-7.0.12.tar.gz2.安装redis安装依赖gccyu
- 【采集软件】抖音根据关键词批量采集搜索结果工具
python布道者0516
python爬虫
这是我用Python开发的抖音关键词搜索采集工具软件。软件界面截图:爬取结果截图:软件演示视频:https://www.bilibili.com/video/BV1Fc41147Be完整讲解文章:https://www.bilibili.com/read/cv33750458
- 【采集软件】抖音评论区批量采集工具
python布道者0516
爬虫python
用Python开发的抖音评论采集工具。软件界面截图:爬取结果截图:软件演示视频:https://www.bilibili.com/video/BV1zT4y1H7hs完整讲解文章:https://www.bilibili.com/read/cv33771828好用的工具值得拥有!!
- 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