
数据结构
文章平均质量分 81
Doris悠然
程序员之路,慢慢学习吧
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构与算法题之数组篇
1数组中的重复数字Leetcode 287. Find the DuplicateNumber 寻找重复数字Given an array nums containing n +1 integers where each integer is between 1 and n (inclusive),prove that at least one duplicate number must e原创 2017-03-29 14:33:29 · 427 阅读 · 0 评论 -
平衡二叉查找树(AVL)的插入
平衡二叉查找树的概念就不多介绍了,这边主要寿命一下如何进行插入操作 在平衡二叉树中插入结点与二叉查找树最大的不同在于要随时保证插入后整棵二叉树是平衡的。那么调整不平衡树的基本方法就是: 旋转 。 下面我们归纳一下平衡旋转的4中情况 1) 绕某元素左旋转 LL(右子树出现右不平衡) 分析一下:在插入数据100之前,a图的B ST树只有80节点的平衡因子是-1(左高-右高),但整棵树还是平衡原创 2017-05-22 17:37:06 · 488 阅读 · 0 评论 -
树的三种遍历方法的非递归版本
Leetcode 144. Binary Tree Preorder Traversal 树的前序 非递归版本的树的前序遍历,只需要保存树的右节点即可public class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList原创 2017-05-22 17:31:36 · 428 阅读 · 0 评论 -
滑动数组的相关问题(实时数据流)
实时数据流的这种题,感觉面试的时候还是比较容易问到的,然后专门整理了一下leetcode上的题和剑指offer上的几道题Leetcode 239. Sliding Window Maximum 滑动集合的最大值 嘀嘀面试的时候遇到了:给一个长度为n的数组,数组中连续k个元素作为一个集合,那么n个数一共可以组成n-k个集合,返回每个集合的最大值。 思路:借用最大队列的思想,维护一个双向队列,保存队原创 2017-05-22 17:03:30 · 385 阅读 · 0 评论 -
数组的全排列
Leetcode 46. Permutations 数组的全排列· TotalAccepted: 160245 · TotalSubmissions: 378230 · Difficulty: Medium · Contributor: LeetCode Given a collection of distinct numbers,re原创 2017-05-22 16:57:03 · 405 阅读 · 0 评论 -
图中是否有环
1. 有向图中是否存在环有向图中是否存在环的问题,可以用图的拓扑排或者深度遍历图看是否存在某个节点是否被访问过两次来解决(深度遍历这边先不具体说,后面会专门分析深度遍历这个算法)图的拓扑排序简单来说就是将图中所有点的入读进行计算,每次弹出一个入读为0的点,然后把该点指向的其他点的入度-1,重复上述操作,一直到把所有的点都弹出。举例说明图的拓扑排序拓扑排序可能有很多种情原创 2017-04-09 16:13:30 · 825 阅读 · 0 评论 -
链表中环的问题
Leetcode 141. Linked List Cycle 链表是否有环两个指针一个一步一步的走,一个两步两步的走,相遇则就是有环public class Solution { public boolean hasCycle(ListNode head) { ListNode temp1 = head,temp2 = head;原创 2017-04-07 17:29:07 · 239 阅读 · 0 评论 -
最长公共字串和最长公共子序列
LintCode 最长公共字串给出两个字符串,找到最长公共子串,并返回其长度。建立一个矩阵来保存两个字符串出现相同字符的地方,比如“abccd”和“abcefc”就有abccda10000b02000c00300e00040f00000c00100这样就有每次遇到相等的都加上下他的斜上方的位置的值,然后使用一个max变量来记录目前的最大值即可原创 2017-04-09 09:36:29 · 343 阅读 · 0 评论 -
最长回文子串和回文子序列
Leetcode5. Longest Palindromic Substring最长回文字串解决最长回文字串的方法有很多种,在这边主要介绍Manacher方法(时间复杂度O(n),空间复杂度O(n)):感觉想出这个方法的人真的是很厉害啊,像我这样的光理解都要理解很久哈~。首先,回文子串总会遇到是奇串还是偶串的问题,Manacher解决这个问题的方法就是在每个字串中间插入一个特殊字符如”#”原创 2017-04-09 11:11:44 · 451 阅读 · 0 评论 -
数据结构与算法之数学计算相关(实时更新)
1. 位运算Leetcode 191. Number of 1 Bits 二进制中1的个数(剑指offer10题)Write a function that takes an unsigned integer and returns thenumber of ’1' bits it has (also known as the Hammingweight).For example,原创 2017-03-29 15:38:28 · 422 阅读 · 0 评论 -
数组中的重复数字
Leetcode 287. Find the Duplicate Number 寻找重复数字 Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Ass原创 2017-05-22 17:47:00 · 424 阅读 · 0 评论