1.数据结构与算法初探 (1)什么是数据结构 a.“摆放图书”例子 b.逻辑结构与存储结构 c.抽象数据类型 (2)什么是算法 算法的定义 算法的特性和设计要求 算法的度量方法(时间复杂度 & 空间复杂度) (3)算法优化——最大子列和 算法1:三重循环 算法2:两重循环 算法3:分治 算法4:在线 ...
分类:
编程语言 时间:
2020-07-04 01:14:59
阅读次数:
83
题目信息 时间: 2019-06-30 题目链接:Leetcode tag: 大根堆 小根堆 难易程度:中等 题目描述: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的 ...
分类:
其他好文 时间:
2020-07-04 00:57:27
阅读次数:
75
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 分析:这是一道很新颖的关于位运算的面试题。 首先我们考虑这个问题的一个简单版本:一个数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出 ...
分类:
编程语言 时间:
2020-07-03 12:31:53
阅读次数:
61
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树 时间复杂度:O(n) n为数组长度 空间复杂度:O(logn) class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None c ...
分类:
编程语言 时间:
2020-07-03 12:23:57
阅读次数:
63
给定一个整数 n, 返回从 1 到 n 的字典顺序。 例如, 给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。 请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。 vector<int>ans; class Sol ...
分类:
其他好文 时间:
2020-07-02 16:15:55
阅读次数:
58
题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达 ...
分类:
其他好文 时间:
2020-07-02 13:26:24
阅读次数:
40
给定一个数组arr,给定一个数target。求,各个元素之和等于target的连续子数组的个数,时间复杂度为O(N),空间复杂度也为O(N) 借助一个Map即可实现。Map中保存的是:从arr的最左侧元素(也就是下标为0的元素)开始,到当前位置为止,所有元素的和出现的次数。 1 private in ...
分类:
编程语言 时间:
2020-07-01 17:34:07
阅读次数:
146
时间复杂度与空间复杂度是算法中的概念。 时间复杂度T(n) = O(f(n))=>T(Time);O(这里是大写字母O,并不是用于来真实代表算法的执行时间,而是用来表示代码执行时间的增长变化趋势);n(代表影响复杂度的因子); f(n)代表复杂度的具体算法 空间复杂度S(n) = O(f(n))=> ...
分类:
其他好文 时间:
2020-07-01 12:27:52
阅读次数:
66
1.顺序查找:逐个比较 时间复杂度:T(n) = O(n),)空间复杂度:S(n) = O(n) 2.折半查找 3.分块查找:把无序的列表分成若干子块(子表),然后建立一个索引表,记录每个子块中的某个关键字(最大的数或是最小的数),然后用关键字和这个索引表进行对比。该索引表还存储子块的起始位置,所以 ...
分类:
其他好文 时间:
2020-06-29 09:42:10
阅读次数:
47
# 递归。重复计算,时间复杂度O(2^n)- O(1) ,空间复杂度为O(n) def fRecursive(n): if n == 0: return 0 elif n == 1: return 1 else: return fRecursive(n - 1) + fRecursive(n - 2 ...
分类:
编程语言 时间:
2020-06-28 22:46:57
阅读次数:
74