
数据结构
LC900730
这个作者很懒,什么都没留下…
展开
-
无重复数列中Nsum问题
public void testKNumEqualsTarget() { Integer[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int k = 3; int target = 20; List<List<Integer>> r = new ArrayList<>(); testKSum(new LinkedList<>(), nums, 0, k, target, 0, ..原创 2021-01-25 19:01:38 · 214 阅读 · 0 评论 -
数列的排列/组合/组合sum问题
从数列中找到k个数的全排列情况 private void doAllRange(LinkedList<Integer> path, int[] nums, int k, List<List<Integer>> r) { if (path.size() == k) { r.add(new ArrayList<>(path)); return; } for (int i = 0; i < .原创 2021-01-19 11:52:02 · 416 阅读 · 0 评论 -
翻转二叉树
递归 二叉树中递归比较神奇的是:一个节点在递归发生的过程中可以回到该节点三次。 public TreeNode flipBiTree(TreeNode root) { if (root == null) { return null; } final TreeNode treeNode = flipBiTree(root.left); final TreeNode treeNode1 = flipBiTree(root.right); //第三次回到这个原创 2021-01-18 19:06:48 · 166 阅读 · 0 评论 -
荷兰国旗与快排问题
主要是记录用同一个思路,解决2个问题。 荷兰国旗问题 int[] nums = {1,2,3,4,6,7,10,9,123,3} int target = 10; //以target为界分成 三个区域 private int[] edges(int[] nums, int L, int R, int target) { //定义一个左边界less int less = L - 1; int more = R + 1; int cur = L; //只要当前值不.原创 2021-01-18 17:00:27 · 208 阅读 · 0 评论 -
UNIX环境高级编程(-)
1.文件和目录1.1文件系统目录是一个包含目录项的文件。在逻辑上可以认为每个目录项都包含一个文件名,同时还包含说明该文件的属性的信息。 文件属性是指文件类型、文件大小、文件所有者、文件权限、修改时间等(stat函数和fstat函数返回包含所有文件属性的一个信息结构)。1.2文件名目录中的名字称为文件名,创建新目录的时候自动创建2个文件名: .和..1.3文件描述符内核用于标识一个特定进程正在访问的原创 2017-06-04 10:37:39 · 440 阅读 · 0 评论 -
数据结构之图
无向图中的极大连通子图称为联通分量: 1.要是子图; 2.子图是连通的; 3.连通子图含有极大顶点数; 4.具有极大顶点数的连通子图包含依附于这些顶点的所有边。 在有向图G中,如果对于每一对vi,vj1.无向图的邻接表 1.图中顶点用一个一维数组存储,(当然顶点也可以单链表来存储,不过数组可以容易读取顶点信息)。另外对于顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该原创 2017-06-02 21:48:38 · 429 阅读 · 0 评论 -
数据结构之图的十字链表
十字链表:Orthogonal List顶点表结点结构如下:datafirstinfirstout其中firstin表示入边表头指针,指向该顶点的入边表中第一个结点,firstout表示出边表头指针,指向该顶点的出边表中的第一个结点。 边表结点结构如下:tailvexheadvexheadlinktaillink其中 tailvex是弧起点在顶点表的下标, headvex是指弧终点在顶点表中的原创 2017-06-02 12:57:38 · 796 阅读 · 0 评论 -
数据结构之图
1.图图是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E),其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合2.图中定义2.1无向边若顶点Vi到Vj之间的边没有方向,则称这个边为无向边(Edge),用无序对(Vi,Vj)来表示。如果图中任意两个顶点之间的边都是无向边,则称该图是无向图;2.2有向边若顶点Vi到Vj之间的边有方向,则称这个边为有向边,也称为弧(Arc)。原创 2017-06-02 10:22:32 · 529 阅读 · 0 评论 -
二叉排序树
二叉排序树删除:在二叉排序树中删除一个结点时,不能把以该结点为根的子树上结点都删除,必须先把被删除 的结点从存储二叉排序树的链表上摘下。 1.如果被删除结点z是叶子节点,那么直接删除,不会破坏二叉排序树的性质; 2.如果节点z只有一颗左子树好欧洲右子树,则让z的子树成为z父结点的子树,替代z的位置; 3.如果z有左右2棵子树,那么令z的直接后继替代z,然后从二叉排序树中删去这个直接后继(或者直原创 2017-06-06 14:40:10 · 401 阅读 · 0 评论 -
数据结构之树(一)
树形结构1.二叉树 祖先节点:根A到根节点K的唯一路径上的任意节点,称为结点K的祖先结点。 度:树中一个结点的子结点个数称为该结点的度,树中结点的最大度树称为树的度。 层:根开始,根节点为第一层,子节点为第二层 深度:根节点开始自顶向下逐层累加的 高度:叶节点开始自底向上逐层累加的 高度:树中节点的最大层数1.2特殊的二叉树1.2.1满二叉树高度为h,2^-1个结点。如果有双亲,那么双亲为[i/2原创 2017-06-01 12:17:03 · 596 阅读 · 0 评论