要求:给定一个链表,判断链表中是否有环。 方法:双指针. 又是双指针~~ 想象一下,两名运动员以不同的速度在环形赛道上跑步会发生什么? 算法 通过使用具有 不同速度 的快、慢两个指针遍历链表,空间复杂度可以被降低至 O(1)O(1)。慢指针每次移动一步,而快指针每次移动两步。 如果列表中不存在环,最 ...
分类:
编程语言 时间:
2020-03-03 00:54:59
阅读次数:
92
十大排序算法分类、特点和关系 (1)冒泡排序(交换排序的一种) (2)选择排序 (3)插入排序 (4)归并排序(采用了分治思想,额外的空间复杂度O(N),容易记错,最后合并大数组的时候需要开辟一个长度为N的数组) https://blog.csdn.net/u010452388/article/de ...
分类:
编程语言 时间:
2020-03-02 01:05:29
阅读次数:
83
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 三种解法: 1. 用map将number和出现次数存起来。 时间复杂度O(n) ...
分类:
编程语言 时间:
2020-03-01 00:27:54
阅读次数:
62
一、算法最最基础1、时间复杂度2、空间复杂度一般最先接触的就是时间复杂度和空间复杂度的学习了,这两个概念以及如何计算,是必须学的,也是必须最先学的,主要有最大复杂度、平均复杂度等,直接通过博客搜索学习即可。文章推荐:算法分析神器—时间复杂度二、基础数据结构1、线性表列表(必学)链表(必学)跳跃表(知道原理,应用,最后自己实现一遍)并查集(建议结合刷题学习)不用说,链表、列表必须,不过重点是链表。三
分类:
编程语言 时间:
2020-02-27 18:47:55
阅读次数:
65
本文是《Redis内部数据结构详解》系列的第六篇。在本文中,我们围绕一个Redis的内部数据结构——skiplist展开讨论。 Redis里面使用skiplist是为了实现sorted set这种对外的数据结构。sorted set提供的操作非常丰富,可以满足非常多的应用场景。这也意味着,sorte ...
分类:
其他好文 时间:
2020-02-27 13:20:09
阅读次数:
64
题型: (1)验证 (2)修复(排列不正确,修复) (3)构造(给排列求树-平衡的;种类) (4)利用性质求第n个结点 二叉搜索树的思路:中序输出+相关操作 如果要求空间复杂度O(1),考虑莫里斯遍历 98. 验证二叉搜索树 面试题 04.05. 合法二叉搜索树 (1) 思路:中序排列,看次序 1 ...
分类:
其他好文 时间:
2020-02-27 09:15:37
阅读次数:
156
12、给定一个单链表(无环),请判断是否是回文结构。在删除倒数第K个节点后,是否为回文结构。 (回文结构:从头到尾遍历节点的值序列结果,与从尾到头遍历的值序列结果是一样的) 要求: 要考虑时间复杂度和空间复杂度 示例 1: 输入: 1->8->4->4->8->1, K=3 输出: true, tr ...
分类:
其他好文 时间:
2020-02-26 14:04:12
阅读次数:
56
题目 翻转一棵二叉树。 示例: 输入: 输出: 本题同 "【剑指Offer】面试题27. 二叉树的镜像" 思路一:递归 代码 时间复杂度:O(n) 空间复杂度:O(n) 思路二:迭代 类似深度优先。 代码 时间复杂度:O(n) 空间复杂度:O(n) ...
分类:
其他好文 时间:
2020-02-24 00:38:20
阅读次数:
56
链表排序 0.来源 来源:力扣(LeetCode) 题目链接:https://leetcode cn.com/problems/sort list 1.题目描述 在?O(n?log?n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 2.测试用例 3.解题思路 3.1 总体思路 ? 看到链表排序 ...
分类:
编程语言 时间:
2020-02-23 09:28:02
阅读次数:
69