- JavaEE第二天_css+js
a_salt_fish
JavaEEJavaEE
*课程回顾:*HTML语言*HTML的简介超文本标记语言。*是网页最基础的语言。*都是由标签所组成的。*HTML的基本格式属性信息,辅助性的信息引入外部的文件(css、js)先加载真正的数据内容(展示用户的数据)*HTML的规范*HTML的标签*排版标签*换行* 空格*水平线*段落标签***字体标签**color:颜色*size:字体的大小*最大值:7最小值是1*face:字体的类型*标
- 微信小程序开发一些经验
极乐叔
对于微信小程序开发入门,还是比较简单的,只需要具备基本的css+js知识就可以了,成本比较低。写了小程序和RN之后,有一种原生很笨重的感觉,就是小程序或者是RN等这些新的开发方式在效率上面真的有比较大的优势,唯一不足就是运行速度了(使用Canvas就会有这样子的感觉)。感觉目前所接触的种类前端开发(包括移动端),都是基本一个套路:UI,网络,数据保存,富文本,图片/视频。本文也是从这几个方向去总结
- CSS+JS鼠标事件触发鼠标模形实现手状
小吴吴吴呀
javascriptcss前端
1.直接使用CSS样式改变当鼠标移动到元素上显示手状。style="cursor:pointer;"2.使用JS触发事件改变原样式:1//使用在元素的标签上的事件2//第一种方式3onmouseover="this.style.cursor='mouseHand'"45//第二种方式6onmouseover="this.ClassName=‘mouseHand’“3.cursor属性的常用取值,如
- 前端css+js实现自定义上传文件/图片按钮,并显示已选文件/图片名称
遇见小美好
web前端cssjavascripthtml5
默认的文件上传按钮样式(如下图)确实不太好看,想展现得美观一些就自己写一个样式吧。下面我们做一个自定义的上传按钮效果,上传后把已上传文件/图片名称也显示出来。实现思路也很简单:1、先把原元素隐藏起来,自己写一个好看的按钮2、点击自定义按钮时触发原元素点击事件达到选择文件上传的效果(等同于触发了原input元素)最终效果如下图:一、html部分代码:选择文件以上html代码片段中input就是默认的
- 知识笔记(六十五)———css+js实现鼠标移动边框高亮效果
瑞崽崽崽
笔记
前言:效果是鼠标移入空白区域,边框高亮的效果。效果是在douyin的渡一教育袁老师的课程学习到的,观看以后是一个实用的小特效。想看的可以平台查询,自己也学到了知识。Documentbody{background:#000;}.card-wrap{display:grid;margin:0auto;width:90%;margin-top:1em;color:#f0f0f0;grid-templat
- css+js实现鼠标移动边框高亮效果
W Y L
javascriptcss开发语言前端
前言:效果是鼠标移入空白区域,边框高亮的效果。效果是在douyin的渡一教育袁老师的课程学习到的,观看以后是一个实用的小特效。想看的可以平台查询,自己也学到了知识。Documentbody{background:#000;}.card-wrap{display:grid;margin:0auto;width:90%;margin-top:1em;color:#f0f0f0;grid-templat
- css+js实现水波纹效果
小小•愿望
JavaScriptcss3前端javascripthtml前端css3
效果如下新建HTML文件,把下面的代码直接贴进来,浏览器打开看效果。在线运行点击水波纹.content{display:flex;justify-content:center;align-items:center;color:#fff;width:200px;height:50px;background:#409eff;cursor:pointer;}/*水波纹样式-开始*/.ripple{pos
- banner 图轮播 CSS+JS特效
小小优化师 anny
HtmlcssJScssjavascript前端
banner.jd-banner{position:relative;overflow:hidden;width:800px;height:450px;}.jd-banner.previousBtn{position:absolute;width:40px;height:40px;background-color:rgba(210,210,210,0.4);border-radius:50%;tr
- HTML5将footer置于页面最底部的方法(CSS+JS)
linwene
JavaScript:$(function(){functionfooterPosition(){$("footer").removeClass("fixed-bottom");//网页正文全文高度varcontentHeight=document.body.scrollHeight,//可视窗口高度,不包括浏览器顶部工具栏winHeight=window.innerHeight;if(!(con
- 纯css+js自制下拉框
阳春三月少年游
vuecssjavascripthtml
前提因为html的select标签,下拉框自定义程度非常的低,为了贴合而项目ui显示,所以打算自制下拉框代码htmlPortugueseEnglishPortuguesecss.pos-rel{position:relative}.pos-abs{position:absolute;top:20px}.my-show{opacity:inherit!important;visibility:inh
- css+js实现水波纹动画
四月_h
javascriptcssecharts
@keyframesspin{50%{transform:translate(-50%,-101%)rotate(500deg);}100%{transform:translate(-50%,-101%)rotate(1000deg);}}.wave-progress{width:100px;height:100px;border-radius:50%;background:#ffffff;ove
- css+js:实现tab切换线条跟随效果
彭世瑜
cssjavascriptcss前端
目录实现效果原理解析代码实现实现效果使用css和js实现一个tab切换的效果原理解析如上图红色框框代表盒子,总宽度记作totalWidth绿色框框代表每一项,宽度记作itemWidth深蓝色框框代表的是下划线,宽度记作activeWitdh那么我们可以得到线的左边距是每一项的左边距加上一个值这个值是每一项的宽度减去线的宽度的结果再除以二即//index是当前点击的item索引,从0开始itemWi
- css+js实现:文本超出宽度时显示省略号并悬浮气泡框
洛千陨
javascriptcssvue.js
背景技术栈:vue+antd-vue目的:文本不超出宽度时正常显示,文本超出宽度时显示省略号并悬浮气泡框实现方案:鼠标移入时判断子元素的宽度与父元素的宽度,对比得出是否需要显示悬浮气泡框具体实现//v-for循环overName(e,card)"@mouseleave="card.showNameTip=false">{{card.tenantname}}//比较span子元素与div父元素之间的
- vue 项目中自定义scroll样式
shine大臣
css3中可以设置滚动条的样式,但是兼容性一直被受争议,偶然看到一个css+js的方式自定义一个滚动条,现在把他分享出来感谢开源项目@vue-tiny-code上代码-->exportdefault{name:"custom-warp",data(){return{moveY:0,moveX:0,sizeY:15,sizeX:15,};},computed:{xBartranslate(){},}
- 实现锂电池形状的数据可视化css+js
干饭了干饭了1
cssjavascript前端
1.效果图2.需求根据后端返回数据改变里面的高度HTML:css:.dianchichi{width:84px;height:146px;display:flex;justify-content:center;align-items:flex-end;padding:12px;background:url('./dianchi.png')no-repeat;.limian{width:100%;/
- 有趣的HTML实例(八) 一个很有趣的动态背景(css+js)
Enovo_Dream
HTML实例前端开发javascripthtmlcss
小时候,谁都觉得自己的未来闪闪发光,不是吗?但是一旦长大,没有一件事会遂自己心愿。——《被嫌弃的松子的一生》目录一、前言二、往期作品回顾三、作品介绍四、本期代码介绍五、效果显示六、编码实现index.htmlstyle.cssscript.js七、获取源码公众号获取源码获取源码?私信?关注?点赞?收藏?一、前言在我们的html学习过程中,会用到并见识到各种各样的实例,以及各种插件,并且有些web网
- html css字体特效,40款CSS+JS文字动画特效html源码
weixin_39575850
htmlcss字体特效
66元大洋买的40款CSS+JS文字动画特效,纯代码实现,非常炫酷,下载以后可以修改文字为自己的,大致包含类型:发光字、火焰字、霓虹灯字、自动弹幕、动态背景文字由JQUERY+CSS+SVG实现目录:2020年数字动画特效2020数字svg动画特效css3svg火焰文字制作动画css3svg绘制love文字动画特效css3发光霓虹灯文字特效css3悬停图片遮罩文字动画特效css3故障文字动画css
- html css 水平时间轴,纯css+js水平时间轴
luyingbb321
htmlcss水平时间轴
自定义,并自动加载时间节点当前时间节点居中,突出显示时间动态无痕添加效果图:初始状态时间左走到一定2016.1月后html:+-对应JS设置处理:varleft=document.getElementById(datesDiv).offsetLeft+parseInt($("#"+datesDiv).parent().css('background-position-y'))+$("#"+date
- 【工作记录】基于CSS+JS可拖拽改变大小、可吸附到边界的DIV
泽济天下
cssjavascript前端
记录一段实现可拖拽、可自动吸附到边界的代码。body{overflow:hidden;}#pane{position:absolute;width:45%;height:45%;top:20%;left:20%;margin:0;padding:0;z-index:99;border:2pxsolidpurple;background:#fefefe;}#title{font-family:mon
- CSS+JS实现流星雨动画
weixin_30402343
引言平常会做一些有意思的小案例练手,通常都会发到codepen上,但是codepen不能写分析。所以就在博客上开个案例分享系列,对demo做个剖析。目的以分享为主,然后也希望各路大神能给出改进的想法,在review中提升技术,发现乐趣~1、效果图完整效果,请移步codepen-流星雨案例2、源码HTML<body><divclass="container"><div&
- 前端案例分享(一):CSS+JS实现流星雨动画
Lucky_wangtao
转载JavaScript
前端案例分享(一):CSS+JS实现流星雨动画目录引言1、效果图2、源码3、案例解析4、小问题5、结语引言平常会做一些有意思的小案例练手,通常都会发到codepen上,但是codepen不能写分析。所以就在博客上开个案例分享系列,对demo做个剖析。目的以分享为主,然后也希望各路大神能给出改进的想法,在review中提升技术,发现乐趣~1、效果图完整效果,请移步codepen-流星雨案例2、源码H
- css+js实现点击特效效果
Joker mock
css动画cssjavascript前端
话不多说,先上效果图实现代码:Documentbody{height:100vh;width:100%;}img{width:40px;height:40px;animation:moy1.2sinfinite;position:fixed;}@keyframesmoy{0%{opacity:1;}50%{opacity:.5;transform:translateY(-30px)}100%{op
- css+js做随意移动的水滴背景
尘世壹俗人
HTMLcssjavascript前端
functioncreateStar(){letwaterDiv=document.createElement('div');waterDiv.className='waterDiv';letwater=document.createElement('div');water.className='water';letxj=document.createElement('div');xj.class
- el-date-picker的icon放右边显示
仰寒天
废话少说,先上图image.pngel-date-picker的icon默认是居左显示,坑就坑在,elment竟然没有提供放居右显示的api。但是,ui的设计又需要居右显示。没办法,只好css+js各显神通的去实现这个功能。闲言少叙,我直接上代码css方式://dom层://css层:.el-date-editor{.el-input__prefix{position:absolute;left:
- 用thinkphp+js模拟ChatGPT逐字打印的效果踩坑指南
毕竟我是大神
PHPjavascript前端开发语言php
最近对ChatGPT里逐字输出的效果很感兴趣,起初以为是接口内容返回之后使用css+js实现的纯前端效果,深入一调研发现用的是Server-SentEvents(SSE)数据流实现的,看了sse的基本原理之后,就开始上手测试了,结果碰到一个小坑,卡了很久,这里分享一下:用thinkPHP实现sse可以这样:在控制器方法中侦听事件源,并将数据输出到客户端。以下是输出要实时推送的事件的示例代码:pub
- vue基于elementui设置表格动态高度的几种方法
阿踏
方法一css+js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要使用calc来设置高度,然后给表格设置:height="tableH"的属性最外层div高度的设置方法//这里减去的是你个人业务除了表格之外其他内容的高度,比如查询条件等.table-wrapper{height:calc(100%-60px);}动态获取表格高度tableH
- css+js 设置网页内容不可复制或可复制
设置网页内容不可复制css仅设置样式,使元素及其子元素的文本不可选:user-select:none;js设置元素的onmousedown和onselectstart返回false,使不能按下鼠标和内容不可选,从而实现不能复制。设置网页内容可复制反向设置网页内容可复制:例如,某些网站设置了不可复制,而你想要复制那些内容,那么,可以这样做:直接找到你想要复制的父元素的类名,打开网页的控制台执行以下三
- CSS+JS 折叠
xiangxiongfly915
#CSSjavascriptcss前端
文章目录CSS+JS折叠效果CSS+jQuery鼠标经过显示详细信息CSS+JS折叠效果折叠效果.collapse-box{width:500px;border:1pxsolidsilver;border-radius:4px;margin:auto;}.collapse-title{height:60px;line-height:60px;font-size:30px;text-align:ce
- Hexo+buttterfly适合任意主题美化(悬挂动态修饰物)
PiaohuiEr
JavaScriptcss3javascript前端html
使用(css+js)代码实现将静态图片绘制成动态gif,我将其应用到每个有nav盒子的页面,成品效果如下:飞行库洛米吊饰我的博客:piaohuier具体步骤如下:找想要的图片(注意:不是gif动图)如下,原图120*130px:PS绘制css图片素材复制图片,改造图片动作,绘制成几份图片。其中,4个小图高宽相同,因此整个图是高130px,宽120*4=480px引入代码设置img:将放在主题目录下
- css+js实现手风琴下拉菜单效果
人间真的不值得
JScsscssjavascript前端
想想到现在已经有一段时间没有更新了,前一段时间忙着面试,过一段时间我会把我的面试用来复习的面试题整理整理发出来下面,我们来用css+js实现手风琴下拉菜单效果,话不多说,直接上代码手风琴下拉菜单四大名著《西游记》《红楼梦》《水浒传》《三国演义》有关爱情名著《霍乱时期的爱情》《飘》《简·爱》《呼啸山庄》此时效果图如下加上css代码/*去除所有标签的外边距内边距*/*{margin:0;padding
- 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