- 博客(20)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 红黑树解析
一、红黑树定义 红黑树是一种特殊的平衡二叉树。 因为是平衡二叉树,所以红黑树有以下性质: 对于任意节点,其左子树的值都小于该节点,其右子树的值都大于该节点 除了上述特点之外红黑树特有的五条性质: (1)每个节点要么是黑色,要么是红色 (2)根节点是黑色 (3)叶节点是黑色(规定只有NULL才能成为叶节点) (4)红色节点的两个子节点都是黑色 (5)任意一个节点到...
2020-04-10 00:27:48 1682 1
原创 JAVA字符串创建及拼接分析
目录一、class文件常量池二、运行时常量池三、字符串常量池四、字符串创建案例分析五、字符串+号拼接案例分析六、字符串拼接比较JAVA主要有三种常量池:class文件常量池、运行时常量池、字符串常量池。一、class文件常量池 一个.java文件在编译阶段会被编译成.class文件,.class文件中除了有魔数、副版本号、主版本号等信息外,还有一个class文件常量池,常量池里主要包含两种...
2020-04-01 23:48:55 871 2
原创 KMP算法快速理解
一、最长公共子缀公共子缀分为前缀和后缀前缀:总是包含第一个字符的子串(不包括父串本身)后缀:总是包含最后一个字符的子串(不包括父串本身)————————————————————————————举个例子:父串ABCDEAB前缀:A、AB、ABC、ABCD、ABCDE、ABCDEA后缀:B、AB、EAB、DEAB、CDEAB、BCDEAB最长公共子缀就是指完全相同的最长前缀和后缀在...
2020-03-16 15:51:23 413
原创 LeetCode4道搜索旋转数组题—33、81、153、154
LeetCode有4道搜索旋转数组的题目,这里一起说了。搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) ...
2020-03-09 16:28:55 244
原创 「辗转相除法」和「更相减损术」求最大公约数
一、辗转相除法举个例子,比如155和65155=652+2565=252+1525=151+1015=101+510=5*2+0一直除到余数为0为止,所以最大公约数是5public static int gcd1(int a, int b) { int l = Math.max(a, b); int s = Math.min(a, b); ...
2020-03-02 00:57:09 1662
原创 LeetCode 581—最短无序连续子数组
给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。———————————————————————————————————— 示例 1: 输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5  ...
2020-02-29 15:32:24 129
原创 JAVA之list使用
import java.util.ArrayList;或者import java.util.*;1.定义和初始化(1)创建空列表,然后逐一添加ArrayList L=new ArrayList();L.add(1);L.add("abc");(2)格式化添加ArrayList L=new ArrayList(){add(1);add("bc");}};(3)将Collection...
2019-08-02 16:36:18 545
原创 Manacher算法(求最长回文子串)
Manacher的主要用途是求一个字符串中包含的最长回文子串。一、前期处理 1.原始字符串长度有奇有偶,为了方便处理字符串,我们使用了一种统一的处理方法。在每个字符两边都插入一个特殊字符(注意这个字符一定是原始字符串不包含的,否则就会混了)。 比如原始字符串是"abcba",那增加特殊字符"#“之后就变成”#a#b#c#b#a#";原始字符串是"abba",增加特殊字符"
2018-10-21 20:43:13 464
原创 编程之法1.2字符串的包含
题目要求: 给定一长字符串a和一短字符串b。请问,如何最快地判断出短字符串b中的所有字符是否都在长字符串a中?请编写函数实现此功能。 为简单起见,假设输入的字符串只包含大写英文字母。下面举几个例子。 1.如果字符串a是"ABCD",字符串b是"BAD",答案是true,因为字符串b中的字母都在字符串a中,或者说b是a的真子集。 2.如果字符串a是&a
2018-10-08 13:46:25 244
原创 编程之法1.1字符串的旋转
题目要求: 给定一个n位字符串,要求将字符串前面的m个字符移到字符串尾部。解法一:暴力移位法 也就是要移多少位就一位一位地移。 时间复杂度O(mn),空间复杂度O(1)。void ShiftOne(char *text,int n)//移动一个字符{ char t=text[0]; for(int i=1;i<n;i++) { tex...
2018-10-07 23:47:02 134
原创 二进制中1的个数
题目描述 : 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。方法1:手动转化法 直接想到的就是手动把数转化为二进制存进vector里,然后去数1的个数。当然这个很麻烦的地方在于负数是用补码,你把绝对值转化成二进制之后还得变成补码,工作量太多。方法2:整数移位法 编程语言提供了位运算符,比如&(与)、|(或)、<<(左移)、>>(右移...
2018-10-06 05:02:41 135
原创 根据二叉树序列重建二叉树
二叉树有前序、中序、后序、层次四种遍历方式。 层次遍历我们就不考虑,因为比较简单。 我们一般是根据前序和中序、中序和后序这两种方式来重建二叉树,注意必须要有中序序列才能唯一确定一棵树。无论是前序和中序、中序和后序构建思路都是一致的。 重建的思路是采用迭代的思想: 比如依照前序和中序 1.我们设定一个函数,把前序和中序传进来,通过前序找到当前的根,并返回根。 2.在返回根...
2018-10-05 17:33:44 212
原创 七大排序算法总结
以下所有动图均来源于一像素博客园以下代码均使用C++编写一、冒泡排序(Bubble Sort)1.原理:一共n个数,nums=[a1,a2,a3….an]。一共遍历n-1次。(1)第1次遍历:比较a1和a2,如果a1&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;a2,则交换两个数的位置,否则不变;再比较a2和a3,交换原理同上,一直比较到an-1和an。可以看到经
2018-09-25 17:26:44 3784
原创 计算机存储整数
I.存储整数采用定点表示法,也就是假设小数点在最右边,但是并不存储。一、无符号表示法1.范围:0 ~ 2n-1(n位存储空间)2.步骤:(1)将整数变为二进制数(2)如果二进制数不够n位,那就在左边加0凑足n位;如果超过n位则溢出3.溢出:例:有4位内存,最多存储到15,如果我们想再加5,得到结果是20,20=(10100)2,丢掉溢出位1,只剩(0100)2=4,所以溢出后得到的...
2018-09-18 15:52:37 1671 2
原创 计算机基本数据单元
1.位(bit)它是计算机存储的最小单位,属于二进制位数。因为计算机是由电子元器件组成,只有开闭即0、1两种状态,所以bit的每一位也就只有0、1两种选项。比如11010100是一个8位二进制数。2.字节(byte/B)字节是一种位模式,从历史上看,字节是用于在计算机中编码单个文本字符的位数,因此它是许多计算机体系结构中最小的可寻址存储单元。换算方式为1 byte=1 B=8 bit,也就是...
2018-09-18 12:30:01 2939
原创 为什么1byte=8bit?
下面内容多来自维基百科,少部分来自其他页面,汇总如下:1.其实编码这个问题最早可以追溯到Baudotcode甚至Bacon’scipher,但时间有限我就没写(因为觉得语言、文字、图腾这些本质都是一种编码,再说就太多了)。2.早期计算机使用四位二进制编码(BCD)或六位二进制编码(BCDIC)来用于美国陆军和海军的可打印图形模式运用。BCD只有四位,表示数字就从0000到1001的最多10个块...
2018-09-18 10:52:01 6458
原创 关于Matlab编程的一些小总结
Matlab在线使用:http://octave-online.net/一、矩阵的定义1.直接定义A=[1,2,3;4,5,6] A=[1:10] A=[1:3,2:4] A=[1:3;2:4](注意这样定义时要保证每一行的数目是相同的,比如A=[1:3;2:5]这样就是不合法的定义) 总结就是逗号表分隔,冒号表连续,分号表换行。2.用zeros和ones定义A=zeros(m,n) 表示
2017-10-09 11:00:11 876
原创 Python安装docx依赖包装不上
主要问题是docx受lxml的影响,如果lxml的版本不对的话,docx根本装不上,不管你用pip,easy_install或者是用源代码包来装。要到https://pypi.python.org/simple/lxml/去下载相应的lxml版本,安装之后就能装上了!
2016-09-05 17:36:56 3772
原创 Word一些功能的使用方法
在写毕设的时候突然想到这个,自己有别的tips会陆续更新的:Word:1.使用格式刷时,选中标准格式的内容,单击的话该格式刷只能刷一次,双击的话就可以刷多次了,取消多次刷的状态只要再点一下格式刷就可以了。2.页码问题:(1)如果你想要首页不显示页码,只需要双击页脚,在上面的设计菜单点击首页不同就行了。(2)如果你的页码要求和毕设的要求有点相似,前几页的页码用罗马数字,从
2016-05-31 16:59:44 930
七大排序算法c++实现
2018-10-03
MacOS 10.14.3安装maven失败?
2019-08-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人