
算法
文章平均质量分 50
云川之下
这个作者很懒,什么都没留下…
展开
-
SHA 256算法
SHA 256是SHA 2系列算法细分出的一种算法,其中SHA是 Secure Hash Algorithm 的缩写,名称中的256值代表最终的哈希值摘要。哈希值通常用一个长度为64的十六进制字符串(由随机字母和数字组成的)来表示,相当于是个长度为32个字节的数组,其中1个字节=8位。多个输入产生相同的输出。您的朋友会在他们的那端验证哈希值,如果匹配,他们就会知道该消息是真实的。简而言之,SHA 256通过将消息和文件等数据转换为固定长度为256位的、且难以区分的字符串来保护数据不被截取或篡改。原创 2023-08-15 14:42:09 · 2179 阅读 · 0 评论 -
深度优先遍历和广度优先遍历
一个简单的树结构图:深度优先遍历深度优先遍历指的是,从树的根节点开始,先遍历左子树,然后遍历右子树。我们借助栈结构来实现深度优先遍历。上图的深度优先遍历结果为:ABDECFG应用场景: 前序遍历、中序遍历、后序遍历例如《二叉树(#144 前序遍历、#94中序遍历、#145后序遍历)&深度优先遍历》广度优先遍历从根节点开始,沿着树的宽度依次遍历树的每个节点。我们借助队列结构来实现树的广度优先遍历。上图的遍历结果为:ABCDEFG应用场景: 层序遍历例如《#102 二叉树的层序遍原创 2021-04-30 19:21:50 · 13328 阅读 · 1 评论 -
【leetcode】#101 对称二叉树
难度:简单思路:对称二叉树,即左节点和右节点对称,那么某层的节点,我们以第三层为例,存在左节点L、右侧节点R,L的子节点为L1和L2,R的子节点为R1和R2,只要L1和R2一致,L2和R1一致即可。class Solution { public boolean isSymmetric(TreeNode root) { if(root==null){ return true; } return isSymmetric(root.left,r原创 2021-04-30 15:06:54 · 104 阅读 · 1 评论 -
【leetcode】剑指 Offer 55 - I. 二叉树的深度
比较简单,主要是2种思路前序中序后序遍历时,记录当前节点的深度,并传入子节点,当叶子节点时,进行比较《二叉树(#144 前序遍历、#94中序遍历、#145后序遍历)》利用层序遍历,那么层的数值就是树深度我们这里才用第一种,前序遍历:class Solution { int maxDep = 0; public int maxDepth(TreeNode root) { if(root==null){ return 0; }原创 2021-04-30 10:23:20 · 92 阅读 · 0 评论 -
【leetcode】#102 二叉树的层序遍历
class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<List<Integer>>(); if(root==null){ return result; } Queue<Tr原创 2021-04-29 19:42:11 · 197 阅读 · 0 评论 -
【leetcode】 #206 反转链表
文章目录1.迭代方法实现1.1 迭代链表,深复制新的节点1.2 迭代,截断原有链表的节点2. 递归方法实现1.迭代方法实现1.1 迭代链表,深复制新的节点迭代链表,逐一深复制新的节点,创建新的链表,把新链表作为新节点的尾巴。public class Leet206 { public ListNode reverseList(ListNode head) { if (head == null) { return null; }原创 2021-02-03 22:11:12 · 126 阅读 · 0 评论 -
【leetcode】#509 斐波那契数
文章目录递归法记忆化递归法递归法原理: 把 f(n)f(n) 问题的计算拆分成 f(n-1)f(n−1) 和 f(n-2)f(n−2) 两个子问题的计算,并递归,以 f(0)f(0) 和 f(1)f(1) 为终止条件。缺点: 大量重复的递归计算,例如 f(n)f(n) 和 f(n - 1)f(n−1) 两者向下递归需要 各自计算 f(n - 2)f(n−2) 的值。会导致超时,不可用。记忆化递归法原理: 在递归法的基础上,新建一个长度为 n 的数组,用于在递归时存储 f(0) 至 (n) 的数字原创 2021-04-12 19:18:07 · 121 阅读 · 0 评论