
数据结构
Horn_WZH
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA刷题参考函数
Arrays用法:复制算法:Array.copyOf(array, length)排序算法:Array.sort(double[]) 升序排列Map用法:Map<T, T> map = new HashMap<>();Map.get(key):获取值Map.getOrDefault(Object key, V defaultValue):相当于python中...原创 2020-03-17 18:45:12 · 290 阅读 · 0 评论 -
leetcode刷题之树
介绍树是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由 n(n>0) 个有限节点组成一个具有层次关系的集合。它具有以下的特点:每个节点都只有有限个子节点或无子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;树里面没有环路。目录二叉树1 递...原创 2020-03-06 21:52:36 · 199 阅读 · 0 评论 -
LeetCode之回溯算法
算法导读:回溯法(back tracking)(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。白话:回溯法可以理解为通过选择不同的岔路口寻找目的地,一个岔路口一个岔路口的去尝试找到目的地。如果走错了路,继续返回...原创 2020-02-10 10:15:34 · 173 阅读 · 0 评论 -
堆,栈,队列题型总结
队列(Queue):是限定只能在表的一端进行插入和另一端删除操作的线性表栈(Stack):是限定之能在表的一端进行插入和删除操作的线性表算法目录:栈1.单调栈2.逆波兰式3.栈在二叉树中的应用队列1.BFS2.一、栈(一)单调栈什么是单调栈?单调栈中的数据存放是有序的,分为单调递增栈与单调递减栈1.单调递增栈:数据出栈的序列为单调递增序列2.单调递减栈:数据出栈的序列...原创 2020-02-10 10:13:08 · 247 阅读 · 0 评论 -
分治算法与二分查找
一、二分查找介绍:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法,前提是数据结构必须先排好序,可以在数据规模的对数时间复杂度内完成查找。但是,二分查找要求线性表具有有随机访问的特点(例如数组),也要求线性表能够根据中间元素的特点推测它两侧元素的性质,以达到缩减问题规模的效果。代码模板:def bsearch(l, r, target): while l &l...原创 2020-02-09 23:02:45 · 1263 阅读 · 0 评论 -
LeetcCode之图
1、什么是图:图就是一堆顶点和边对象而已,可以用邻接表和邻接矩阵表示。2、注意事项:在 稀疏图的情况下,每一个顶点都只会和少数几个顶点相连,这种情况下相邻列表是最佳选择。如果这个图比较密集,每一个顶点都和大多数其他顶点相连,那么相邻矩阵更合适。3、核心算法搜索——终止——回溯——搜索——直到找到解/遍历全部节点。(一)DFS举例一(leetcode200)给定一个由 ‘1’(陆地)...原创 2020-02-10 10:17:13 · 389 阅读 · 0 评论 -
递归算法
核心思想:重复将问题分解为同类的子问题而解决问题的方法,其核心思想是分治策略。使用条件:1.需要解决的问题可以转化为一个或多个子问题来求解,而这些子问题的求解方法与原问题完全相同,只是在数量和规模上不同。2.递归调用的次数必须是有限的。3.必须有结束递归的条件来终止递归。举例(LeetCode 894):满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。返回包含 N ...原创 2020-01-30 16:22:37 · 338 阅读 · 0 评论