笔记
文章平均质量分 72
二灯法师
https://github.com/morningwn/note
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
将自己的web应用打包成docker镜像并运行
闲着没事,学学了一下docker的玩法,写个笔记备忘。就是使用Dockerfile的形式来将自己的应用打包成镜像,然后运行。创建web应用略如果这都 不会弄回去学web吧我这里是将应用打包成war包,在Tomcat上运行。将web应用打包自己怎么舒服怎么来,我是用的maven的形式来打包的插件配不配其实都行,如果不配的话会使用默认的插件来打包。关键是指定web.xml文件的地址,可能是因为我项目结构的问题,如果不指定web.xml文件位置,无法打包。 <!-- 指定打成wa.原创 2021-01-08 15:42:44 · 1979 阅读 · 0 评论 -
Java开发工具Lombok的使用详解
文章目录概述配置安装插件添加依赖使用@Data@NoArgsConstructor@AllArgsConstructor@Setter@Getter@ToString概述lombok是一个Java工具,可以让我们在开发中省去写一些不必要的代码的时间,让Java的代码变的更加的简洁。配置使用lombok需要在ide中安装一个插件,具体方法要看是那个ide。我用的是IDEA,然后这里就只说IDEA怎么弄,其他的出门左转,百度。接下来就是在项目添加lombok的依赖,然后就可以用了。安装插件直接在设置原创 2020-10-28 23:09:16 · 643 阅读 · 0 评论 -
Maven常用小配置
平时写代码的时候用到的一些配置,当作备忘录;出现错误还请指正。文章目录配置使用阿里云仓库更改本地仓库位置配置使用阿里云仓库使用阿里云的仓库主要就是为了速度,有的使用官方的仓库加载半天,老烦人了。在mirrors标签中添加如下配置。 <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</n.原创 2020-10-23 15:18:47 · 137 阅读 · 0 评论 -
8/15数码问题的A*算法
文章目录题目描述思路代码8数码问题15数码问题题目描述有以下的表格,然后每次与空白表格相邻的位置可以与其位置进行交换,求进行交换过程中的路径。思路这种题目可以使用A*算法来解决,具体的复杂度要看估价函数。我这里使用了两种估价函数,虽然整体还是很垃圾,但是能够明显的感觉到不同估价函数对运行时间的影响。另外就是,实现的算法中没有保存交换路径,留待解决。具体的实现,我把表格封装成了一个对象,其中封装了移动,估价函数这些操作。然后留给其他的就只是一个循环,不停的判断是否在OPEN表和CLOSED原创 2020-10-09 14:57:06 · 1336 阅读 · 1 评论 -
从输入网址到看到界面的过程解析(HTTP请求的过程)
文章目录域名解析数据传输应用层传输层网络层链路层参考文章域名解析域名解析就是将我们输入的各种字符串(域名)解析为对应的IP地址的过程。以下是查询的过程 1从缓存中查询。这个从缓存中查询一般分为两种:1、从浏览器的缓存记录中查询。2、从操作系统的缓存中进行查询。从操作系统的host文件中查询。操作系统中的映射文件是不可以动态修改的,只要你不主动改,那这个永远就是这个样子,不像之前的缓存,可以修改,也可以清空。以win10来说,在C:\Windows\System32\driv原创 2020-10-02 17:04:24 · 471 阅读 · 0 评论 -
安卓高级开发总结
文章目录第1部分 多媒体应用开发1、MediaPlayer的状态图和生命周期及相关方法IDlE状态Initialized状态Preparing状态Prepared状态Started状态Paused状态Stopped状态PlaybackCompleted状态Error状态End状态2、MediaPlayer音视频播放的基本实现3、Android的音效框架AudioEffect的基本应用;4、声音特效VolumeShaper的基本应用5、如何使用SoundPool播放音频以及与MediaPlayer的区别6、V原创 2020-08-26 16:22:20 · 2132 阅读 · 0 评论 -
编译原理
文章目录第一章编译程序的各个逻辑阶段及各阶段的意义遍的概念第二章词法分析器的相关概念状态转换图、NFA、DFA、NFA与DFA的转换、DFA的化简正规式与正规集第三章优先集、结合性;名字、标识符;左值和右值;符号串和符号串集合的相关概念以及相关运算上下文无关文法、推导与归约、语法分析树、二义性形式语言鸟瞰,即四种类型的文法语法分析器的相关概念自上而下分析面临的问左递归的消除,公共左因子的提取first集 follow集LL(1)文法的条件LL(1)分析表的构造及预测分析过程概念的掌握,如短语、直接短语、句柄原创 2020-08-26 13:59:13 · 1769 阅读 · 0 评论 -
ArrayList从入门到入坟(代码详解)
List是一个接口,其实现了接口Collection。在此只对他的几种常用的实现类进行说明,下面的这些其实自己去看API也能看到。ArrayListArrayList的底层是采用的数组实现的,所以查询快,插入删除慢。ArrayList在初始化的时候如果不指定会默认的将数组的容量设值为10,也可以自己在初始化的时候指定容量。之后在进行添加的时候如果需要扩容,每次增加0.5倍。另外ArrayL...原创 2020-07-22 16:03:45 · 224 阅读 · 0 评论 -
贪心法学习笔记
贪心法学习笔记贪心法的特点设计要素证明方法第一数学归纳法第二数学归纳法例题活动安排问题最优装载问题以下的东西来自中国大学MOOC北京大学屈婉玲老师的算法设计与分析课程,本人只是做了一下搬运,中间如果有什么错误,纯属本人的失误。慕课地址贪心法的特点设计要素贪心法适用于组合优化问题。求解过程是多步判断过程,最终的判断序列对应于问题的最优解。依据某种“短视的”贪心选择性质判断,性质好坏决定算法的成败。贪心法必须进行正确性证明。证明贪心法不正确的技巧:举反例。贪心法的优势:算法简单,时间和原创 2020-06-26 16:28:33 · 577 阅读 · 0 评论 -
动态规划学习笔记
动态规划学习笔记设计思想适用条件设计要素以下的东西来自中国大学MOOC北京大学屈婉玲老师的算法设计与分析课程,本人只是做了一下搬运,中间如果有什么错误,纯属本人的失误。慕课地址设计思想动态规划的求解过程是一个多阶段的决策过程,每步处理一个子问题,可用于求解组合优化问题。适用条件问题要满足优化原则或最优子结构性质,即:一个最优决策序列的任何子序列本身一定是相对于子序列的初始和结束状态的最优决策序列。设计要素...原创 2020-06-25 21:55:01 · 264 阅读 · 0 评论 -
Java工厂模式详解
Java开发中常见的几种设计模式单例模式懒汉式(线程不安全)懒汉式(线程安全)饿汉式(线程安全)工厂方法模式普通工厂模式多个工厂方法模式静态工厂模式抽象工厂模式建造者模式单例模式单例模式使用一个私有的构造函数、一个私有的静态变量和一个共有的静态函数来实现。public class Singleton{ private static Singleton singleton; //私有的构造函数保证了不能通过构造函数来创建对象实例 private Singleton(){ } //只能通过原创 2020-06-17 23:26:26 · 295 阅读 · 0 评论 -
分治策略学习笔记
分治策略分治策略的设计思想分治策略的一般性描述设计要点在分治策略中有以下几个问题:例题芯片测试问题分析:蛮力算法分治算法快速排序基本思想分治策略的设计思想将一个大问题分割成多个子问题,对子问题逐个求解,最终将所有子问题的结果汇总起来,得到大问题的解。分治策略的一般性描述Devide-and-Conquer( P )if |P| <= c then S( P )divide P into P1P_1P1, P2P_2P2, …,PkP_kPkfor i←1i←1i←1 to k原创 2020-06-17 22:41:13 · 936 阅读 · 2 评论 -
面试题56 - I、数组中数字出现的次数
一、题目1二、思路为了避免那年再看这道题不会写,做一下笔记。异或运算,相同位上的数相同,结果就为0,不同就为1。这里的每一位是值二进制。位与运算,相同位上的数相同,结果就为1,不同就为0。移位运算,左移,每移动一位相当于每次乘2。右移,相当于每移动一位除2。正常情况假设一个数组里面只有一个数只出现了两次,其他的均出现了两次,那么直接对整个数组进行异或运算就能够得到结果,因为出现两次的...原创 2020-04-28 20:07:58 · 208 阅读 · 0 评论 -
java基础之基本数据类型
Java基础基础语法基本数据类型布尔型booleanbytecharshortInteger(int)longfloatdoubleGUI编程IO编程数据库编程异常处理多线程基础语法基本数据类型数据类型写法范围存贮大小布尔型boolean0/11位无符号数字节型byte-27~27-18位带符号数字符型char0~216-116位无符号数...原创 2020-04-27 16:45:56 · 141 阅读 · 0 评论 -
0-1背包问题
思路:首先,放下公式:F(i,j)=max{F(i−1,j),F(i−1,j−w[i])+v[i]}F(i,j)=max\{ F(i-1,j), F(i-1,j-w[i])+v[i] \}F(i,j)=max{F(i−1,j),F(i−1,j−w[i])+v[i]}其中,F(i,j)代表在i件物品中选择若干件放在承重为 j 的背包中,可以取得的最大价值。i代表第i个物品,j代表当前的空间...原创 2020-04-21 11:39:25 · 185 阅读 · 0 评论 -
图像压缩的动态规划算法
思路目测这个题也是最优子结构问题,首先就是查找到当前数组中最优的切割点,然后进行切割,进入下一轮循环。递推公式如下:s[i]=min1≤k≤min{i,256}{s[i−k]+k×bmax(i−k+1,i)}+11s[i]=min_{1\le k \le min\{i,256\}} \{ s[i-k] + k\times b max(i-k+1, i) \}+11s[i]=min1≤k≤...原创 2020-04-16 17:37:16 · 1894 阅读 · 0 评论 -
凸多边形最优三角剖分
思路分治算法中的最优子结构对输入的n个顶点来说,只用得到这n个顶点中的三个顶点,使其构成的三角形周长之和最小,其他的就啥也不用管,进行下一次循环就行了。这个是网上找到的递推公式。首先,从n个顶点中找到,三个顶点。用一个嵌套的三层循环就行了,简单粗暴。其次,根据查询到的不同结果,将输入的顶点进行分割,然后进入下一次循环。分割的情况1:分成了一个三角形和一个多边形分割的情况2:分成...原创 2020-04-16 11:27:25 · 936 阅读 · 0 评论 -
割绳子
分治法遍历所有的情况,求最大值。公式就是f(n,m) = f(n-i,m-1)*i每次递归只需要考虑这一次递归的i的值,然后进行下一次。数学法这几个数越平均,结果就越大/** 给定一段长度为n的绳子,剪成m段,求其最大乘积* */public class Work6 { public Work6(){ System.out.println( maxPro...原创 2020-04-02 11:12:01 · 431 阅读 · 0 评论 -
爬楼梯
思路这种,就是f(n)=f(n-1)+f(n-2)迭代法就是,用数组将每个F(n)的值存储起来,从小到大依次加出来就行了递归法,当n大于2直接返回f(n)=f(n-1)+f(n-2),从大到小得到结果代码public class Work5 { public Work5(){ System.out.println( f1(5) ); Syste...原创 2020-03-26 18:30:29 · 149 阅读 · 0 评论 -
插入排序和归并排序
插入排序一共有三种:直接插入排序、希尔排序和折半插入排序。最后一个折半插入排序,感觉用在数组上面不太方便,就没写出来。递归实现没有思路,使用的非递归算法。直接插入排序这个算法默认前n个数是已经排好序的,n随着你的插入逐渐变大,最开始是1。然后从后往前逐渐查找应该插入的位置;我的算法是从小到大,那就依次对比当前位置的值是否比要插入的值大,如果大就往后移动一个位置,小于等于当前位置的值就进行...原创 2020-02-29 20:27:54 · 856 阅读 · 0 评论 -
正整数的大数相乘
说明1、输入必须是正整数2、代码正确无误,因为这个是一道力扣的题。传送门3、思路:从一个输入值中分别切出来每一位,与另个值相乘,并将结果相加。切出来的值与另一个值相乘的方法也是一位一位的切出来,相乘得到结果,然后汇总起来。4、优化除了字符串形式的结果生成可以改成StringBuilder再快点,别的,目测不能再优化了。代码package calculate;public class...原创 2020-02-28 12:06:22 · 385 阅读 · 0 评论 -
正整数的大数相减
说明1、不是啥最优的算法,只是能计算2、不一定完全没有错,只能在正数范围计算3、思路,逐位计算合在一起就是结果代码package calculate;public class Subtract { public Subtract(){ /*可能存在的几种情况 * 1、两数长度相同,不存在借位情况 * 2、两数长度相同,借位...原创 2020-02-25 17:39:04 · 253 阅读 · 0 评论 -
正整数的大数相加
说明1、忽略算法的优化,这个只是我个人写出来,个人测试后没问题的代码。不是啥时间空间复杂度最优的,也不一定的完全正确的。2、算法针对输入的要求必须是正整数之间的相加。负数,小数、分数、复数不行。3、思路,非常简单,从低到高,逐位相加,然后将每一位相加的结果合并在一起就是最后的结果。其他的请看代码。代码package calculate;public class Add { ...原创 2020-02-24 22:42:19 · 279 阅读 · 0 评论 -
二分查找
原理非常简单,两个指针指向数组两端,然后判断其中间值和目标值的大小,根据判断结果缩小区间,直到找到目标,或者两个指针相遇。要求:输入的数组必须是线性有序时间复杂度为O(log n)package search;/** 折半查找* 在有序数组中查询到一个指定值* 如果存在就返回索引,不存在就返回-1* */public class BinarySearch { publ...原创 2020-02-24 15:40:08 · 195 阅读 · 0 评论 -
n的阶乘与Fibonacci数列的递归实现算法。
package 算法设计与分析;/** 1、n的阶乘的递归实现算法。* 2、Fibonacci数列的递归实现算法。* */public class Work2 { public Work2(){ for ( int i = 0; i < 10; i++ ){ System.out.println( factorial(i) + ...原创 2020-02-22 12:29:53 · 528 阅读 · 0 评论 -
求两个不全为零的非负整数最大公约数
下面的代码中一共有三种实现方法,分别是分别使用欧几里得算法、连续整数检测算法、公因数算法1、欧几里得算法:两个值不停的去相除,直到他们相除的余数为零时,得到结果,公约数为此时的被除数。我实现的方法是递归的方法,非递归应该也行,等哪辈子我再试试。2、连续整数检测算法:从两个数中较小的那个开始,不停的去检测,是否是输入的两个数的约数,如果是就返回结果,不是就将检测值减一继续进行检测。因为是...原创 2020-02-15 16:26:13 · 1051 阅读 · 0 评论
分享