
leetcode
文章平均质量分 94
你的boy_Z
timianer
展开
-
高级数据结构-字典树、并查集和字段树
高级数据结构Trie树(字典树)定义trie树,又称字典树或者前缀树,是一种有序的、用于统计、排序和存储字符串的数据结构,它与二叉查找树不同,关键字不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。tried树的最大有点就是利用字符串的公共前缀来减少存储空间与查询时间,从而最大限度地减少无所谓的字符串比较,是非常高效的字符串查原创 2021-01-11 19:59:56 · 418 阅读 · 2 评论 -
轻松搞定动态规划算法题
动态规划写在前面本人对动态规划的理解是我们知道初始值的一些状态,去求未来的值。而初始值到未来值的变化是有统一的公式的,类似于数学归纳法。这里说一下,说懒了的dp要点;原问题到自问题的拆分,怎么把原问题拆分成自问题。初始状态,边界状态,我们要根据它来递推到我们最终状态状态转移方程,关键退出状态,结果状态。也就是你状态转移方程的退出条件。LeetCode 70 爬楼梯记得这道题是up校招的时候猫眼电影的二面面试问我的,那时候up没刷过题,给出了一个n方的方式。记忆满深刻的。但是代码没写出来原创 2021-01-04 14:53:33 · 180 阅读 · 0 评论 -
搜索算法
搜索算法写在前面搜索算法总的来讲就是宽搜和广搜,这篇文章主要来和大家一起做一下leedcode中涉及到深搜和宽搜的题目。这里以二叉树为列讲一下基础架构的伪代码逻辑,对我们做其它延伸类题目很有帮助。基础深搜伪代码public void dfs(Tree node){ //递归退出条件 if(node == null){ return; } //递归遍历分支节点 dfs(node.left); dfs(node.right);}基础宽搜伪代码pulic bfs(Tr原创 2020-12-17 16:59:39 · 258 阅读 · 0 评论 -
哈希表和字符串
哈希表和字符串经典算法算法准备数据结构复习HashTable线程安全,操作函数使用synchronized关键字修饰,保证线程安全;初始默认容量 11,拓展因子 0.75;最大值,为Integer.MAX_VALUE - 8;扩容为oldsize<<1 +1;根据key获取index的方式是:(hash&0x7FFFFFFF)%tab.length;put(key,value),value不允许为空,key也不允许(key.hashcode会抛出异常);为什么key原创 2020-12-07 16:17:42 · 364 阅读 · 0 评论 -
二分查找和二叉排序树
二分查找和二叉排序树预备知识1 二分查找算法前提: 要有顺序逻辑(默认升序):将中间位置的关键字与查询关键字比较:如果两者相等,则查找成功。否则利用中间位置将表分成前、后两个子表:如果中间位置的的关键字大于查找关键字,则进一步查找前一子表否则进一步查找后一字表重复以上过程,直到找到满足条件的记录,则查询成功,或这直到子表不存在为止,此时查找不成功。//递归public static boolean binary_search(int[] val,int begin,int原创 2020-11-27 15:57:31 · 2105 阅读 · 0 评论 -
图
图1 定义图是由n个顶点和x条边组成的图像。List<List<Integer>> nodeAndEdges = new ArrayList<List<Integer>>();java 可以用嵌套list来表述,外层list的序号表示顶点,它关联的内存list表示到其它顶点的边;eg: <0,<1,2,3>>顶点0,和顶点1、2、3相链接。ps:这里图的表示方法采用的邻接表,还存在邻接矩阵、星型图。2 遍历方式2.1原创 2020-11-16 17:15:18 · 117 阅读 · 0 评论 -
二叉树
二叉树算法总结二叉树的遍历方式 ##基础数据结构 class TreeNode{ int val; TreeNode left; TreeNode right; public TreeNode(int val){ this.val = val; this.left = null; this.right = null; } publ原创 2020-11-16 15:47:34 · 140 阅读 · 0 评论 -
LeetCode(25)K个一组反转链表
LeetCode(25)K个一组反转链表一个体面人的刷题之旅题目描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。题目分析首先,这是一道链表反转题目,我们要对操作动作和数据结构的关联敏感,一看到翻转,就想到先进后出啊,这样就顺序反转了不嘛!一提到先进后出...原创 2020-04-16 21:07:10 · 197 阅读 · 0 评论