2019/04/03 方法一:遍历两次链表,第一次遍历得到链表的长度,第二次遍历找到倒数第n个节点并删除它。 时间复杂度为O(6n),空间复杂度为O(1) 方法二:遍历一遍链表,遍历链表的同时将各节点地址放入容器中,遍历结束后通过容器下表删除倒数第n个节点。 时间复杂度为O(4n),空间复杂度为O( ...
分类:
其他好文 时间:
2019-04-03 23:52:15
阅读次数:
161
例一 给定一个数组arr,和一个数num,请把小于等于num的数放在数 组的左边,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N) 例一(升级版) 给定一个数组arr,和一个数num,请把小于num的数放在数组的 左边,等于num的数放在数组的中间,大于num的数放在数组 ...
分类:
编程语言 时间:
2019-04-01 17:09:01
阅读次数:
171
首先,算法的时间复杂度和空间复杂度合称为算法的复杂度。 时间复杂度 (1)时间频度:一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的 ...
分类:
其他好文 时间:
2019-04-01 14:08:56
阅读次数:
131
2019/03/31 今天开始在LeetCode上刷题,第一道只会普通的解法,先记录下来,以后有新的想法再改进。 时间复杂度O(n2),空间复杂度O(1) 执行效果如下: ...
分类:
其他好文 时间:
2019-03-31 23:24:15
阅读次数:
272
【基本思想】 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。 【基本思想】 【算法复杂度】 时间复杂度(平均)时间复杂度 (最坏)时间复杂度(最好)空间复杂度稳定性 O(n^2) O(n^2) O(n) O(1) 稳定 时间复杂 ...
分类:
编程语言 时间:
2019-03-31 23:16:01
阅读次数:
195
第三章主要学习了栈和队列的表示以及基本操作,栈和队列都是操作受限的表,栈的特点是先进先后出,队列是先进先出,在栈与递归中,我学习到递归算法虽然结构清晰可读性强算法简单,但时间和空间复杂度都很大,所以好的方式是用迭代。循环队列:使用循环队列可以避免假溢出的问题,rear=(rear+1)%MAXSIZ ...
分类:
其他好文 时间:
2019-03-31 12:23:03
阅读次数:
116
1, 桶优化最短路, 时间复杂度$O(m+n)$, 空间$O(C)$, $C$为最短路长度 2, 基数堆优化, 时间复杂度$O(m+nlogC)$, 空间复杂度$O(logC)$ ...
分类:
其他好文 时间:
2019-03-30 20:09:03
阅读次数:
182
这将是我第一个记录自己学习轨迹的博客文,本次记录的是冒泡排序。 冒泡排序最大时间复杂度为O(n^2),从空间复杂度和时间复杂度来说冒泡排序算法并不是最好的排序方法。但是冒泡排序有一些优点:冒泡法有一个很形象的名字,冒泡法排序是一种就地排序,冒泡排序还是一种稳定的排序(冲突间相对位置不变)。 冒泡排序 ...
分类:
编程语言 时间:
2019-03-29 16:04:34
阅读次数:
160
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 解法1: class Solution { public void rotate(i ...
分类:
编程语言 时间:
2019-03-28 00:39:03
阅读次数:
205
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 示例 2: /* 1.归并排序思想 2.找到中间节点 3.进行归并排序 */ ...
分类:
编程语言 时间:
2019-03-27 21:26:02
阅读次数:
206