手撕中缀表达式转后缀表达式(逆波兰式) 中缀表达式转后缀表达式转化后只是操作符的次序变了,操作数的次序并没有变 唯一知道一点a+b转后缀表达式为ab+,乘法除法都雷同就可了其他运算次序为从左到右依次运算,先运算的还是先运算(操作符优先程度高的,如乘法优先加法之类的) 2020-12-26 #java #算法
n后问题 问题描述在n乘以n格的棋盘上放置彼此不受攻击的n个皇后,按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n*n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。 思路与图着色问题思考方式大致相同,需要一个一维数组记录皇后放置棋盘上的位置,以数组下标为棋盘上的行,数组的值为棋盘的列,进行每列试值,检查其放置是否合法,不合法回溯,合法进行下 2020-12-23 #java #算法
单源最短路径(Dijkstra算法) 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法(单源最短路径),解决的是有权图中最短路径问题,采用贪心的策略。如下图:求顶点1到顶点5的最短路径长度是多少. 2020-12-23 #java #算法
哈夫曼编码 构造哈夫曼树时使用双亲孩子的存储结构,需要数据有: 权重,他们母亲是谁,是否加入了哈夫曼树,他们左孩子与右孩子又是谁? 步骤: 单节点的初始化入哈夫曼树中,初始化2*n-1个节点 寻找两个权重最小且还没有加入树中的节点进行构造哈夫曼树,不断重复此过程(构造过程中存储结构中变动的信息都需要更新)其实这寻找两个权值最小的节点挺难的,困了好长时间/(ㄒoㄒ)/~~ 根据构造的树,解 2020-12-20 #java #算法
0-1背包问题 0-1背包问题:假设你是个小偷,背着一个可装4磅东西的背包。你可盗窃的商品有如下3件 为了让盗窃的商品价值最高,你该选择哪些商品? 每个动态规划算法都从一个网格开始,背包问题的网格如下: 2020-12-19 Diary #java #算法
冒泡,二分,合并,快速排序 二分排序法二分查找法主要是解决在“一堆数中找出指定的数”这类问题。 而想要应用二分查找法,这“一堆数”必须有以下特征: 存储在数组中 有序排列 二分查找思路,在一个有序的数组中(从小到大排列),与中间的那个数作比较,若相等,则找到,若小于中间的数则继续在左边那一块重复操作,反之重复右边的那块操作。 2020-12-19 #java #算法
图的着色问题(地图着色问题) 问题描述 给定无向连通图G=(V, E)和m种不同的颜色,用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中相邻的两个顶点有不同的颜色? 这个问题是图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每条边连接的两个顶点着不同颜色,则称这个数m为该图的色数。求一个图的色数m的问题称为图的m可着色优化问题。&emsp 2020-12-18 #java #算法
小记 2020-12-18 18:31:17 现在很是茫然,不想面对,还有4天就期末考了,眼球失焦的看着滑动的各种段子,新闻,麻木的混过这几个小时,赶快开始新的一天,翘盼着新的一天自己有所改变。。。啊,写出来感觉畅快多了,我就是一个废物,承认自己是废物心里舒坦多了 20:23 2020/12/20其实当你毛躁不专注时,可以转移注意力去做一下你别处的事情,等你准备好了(当然尽快哈),就可以效率很快的一举攻 2020-12-18 #小记
最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,”ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。求解使用费曼算 2020-12-17 #java #算法