数据结构和算法
分享自己学习的经典算法
望月听风
在读研究生,社交网络方向,热爱编程。
展开
-
计算机中如何存储数字、怎么运算、以及越界了怎么办
计算机底层二进制运算原创 2024-01-20 10:29:02 · 528 阅读 · 0 评论 -
tarjan算法
太强啦原创 2022-01-03 21:10:48 · 212 阅读 · 0 评论 -
Integer 和int区别 String和new String()
本文就java语言来讲,探讨一下项目中遇到的坑,以及如何避免这个问题。首先说一下我遇到的坑,我用Integer进行比较,且比较符号为 =,然后我就debug,找半天最后发现这个问题。那为什么Integer不能用等于号呢?首先先得说一下装箱和拆箱。装箱int 这种基本类型转成Integer对象,可以通过如下代码转换// 显式转换int a=7;Integer aNum = Integer.valueOf(a);// 隐式转换Integer b=7;拆箱Integer对象转换成原创 2021-12-28 20:07:31 · 215 阅读 · 0 评论 -
java 平衡二叉树代码
说明:java使用的是值传递,如果处理不好,容易出现空指针异常public class AVL { public AVL() { } // 插入应该一直往右边插 public Node insert(int e, Node root) { // 也就是说root在传入前必须有指向的对象 if (root == null) { root = new Node(e); return root;原创 2021-04-23 16:34:41 · 90 阅读 · 0 评论 -
滚动数组
简介滚动数组主要是对空间复杂度进行优化,可用在动态规划中分类对一维数组优化对二维数组优化一维// 以斐波那契数列为例// 未优化之前int[] dp = new int[m];dp[0]=nums[0];dp[1]=nums[1];for (int i=2;i<m;i++){ dp[i]=dp[i-1]+dp[i-2];}// 可以发现 dp[i],之前前面两个状态有关int[] dp = new int[2];dp[0]=nums[0];dp[1]=nu原创 2021-03-14 15:19:42 · 109 阅读 · 0 评论 -
2-3-4树
归根到底就是我们所说的搜索二叉树,只不过是节点元素和孩子节点增加而已,下面通过例子来说明。节点分三种类型:2节点、3节点、4节点节点代表含义:2节点(节点中含有一个元素,两个孩子,3节点、4节点以此类推)规定:如果说是3节点就必须是两个元素,三个孩子,其他类似。创建:按着搜索二叉树的方式,查找再插入,并按规则调整。注意:只有该节点满足了4节点,才进行分裂。分裂规则:由于节点的类型比较多,编码实现比较复杂,于是采用等价的红黑树来实现。下一篇来讲解红黑树...原创 2021-01-11 14:27:03 · 127 阅读 · 0 评论