1.设计一个高效的算法,从顺序表L中删除所有值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1). 2.算法实现带头节点单链表的就地址逆置问题。 3.已知一个带头结点的单链表L,其结点的元素值以非递减顺序排列,设计算法删除该单链表中元素值重复的结点。 4.以二叉链表做存储结构,编写算法输出二 ...
分类:
编程语言 时间:
2018-06-30 20:21:45
阅读次数:
263
输入样例: 4 0.1 0.2 0.3 0.4 输出样例: 5.00 暴力解法 时间复杂度Θ(n^3) 空间复杂度Θ(n) 这种复杂度肯定会超时的。 一开始我还以为是DP,优化掉了一层循环 时间复杂度Θ(n^2) 空间复杂度Θ(n) 结果还是超时了。 include include include ...
分类:
其他好文 时间:
2018-06-30 10:55:15
阅读次数:
184
划分问题和快排 普通划分 给定一个数组arr, 和一个数num, 请把小于等于num的数放在数组的左边, 大于num的数放在数组的右边。要求额外空间复杂度O(1), 时间复杂度O(N) 想法是这样的,维持一个index,表示在index以及以前的数字都是小于等于num的。 荷兰国旗问题 给定一个数组 ...
分类:
其他好文 时间:
2018-06-29 14:10:12
阅读次数:
165
常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序 O(n2) O(n2) 稳定 O(1) 二叉树排序 O(n2) ...
分类:
编程语言 时间:
2018-06-28 21:37:09
阅读次数:
240
36.两个链表的第一个公共节点 题目描述 输入两个链表,找出它们的第一个公共结点。 1.具有重合节点的两个链表是一个Y字性,用两个堆栈放这两个链表,从尾部开始遍历,直到遍历到最后一个重合节点。 这种算法时间复杂度为O(m+n),但是空间复杂度也是O(m+n),相当于是空间换时间 /* public ...
分类:
编程语言 时间:
2018-06-27 23:55:40
阅读次数:
200
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写出程序找出这两个只出现一次的数字。要求时间复杂度为o(n),空间复杂度是o(1)。 这两个题目都在强调一个(或两个)数字只出现一次,其他的出现两次。这有什么意义呢?我们想到异或运算的一个性质:任何一个数字异或它自己都等于0。也就是说, ...
分类:
编程语言 时间:
2018-06-27 21:07:02
阅读次数:
129
问题描述: Given an array of size n, find the majority element. The majority element is the element that appears more than ? n/2 ? times. You may assume th ...
分类:
其他好文 时间:
2018-06-26 10:58:54
阅读次数:
183
思想 把数组当做二叉树来排序: 索引0是树的根节点; 除根节点外,索引为N的节点的父节点索引是(N 1)/2; 索引为N的节点的左子节点索引是 2 N+1; 索引为N的节点的右子节点索引是 2 N+2; 代码 工作过程 待画图 性能分析 时间复杂度:最好、平均、最坏都是 O(nlogn) 空间复杂度 ...
分类:
编程语言 时间:
2018-06-24 18:03:41
阅读次数:
194
【模板】可持久化线段树 1(主席树) https://www.luogu.org/problemnew/show/P3834 主席树支持历史查询,空间复杂度为O(nlogn),需要动态开点 本题用一个类似于前缀和的思想,离散化之后 用主席树维护每一个前缀的“桶”数组 ...
分类:
其他好文 时间:
2018-06-23 18:59:10
阅读次数:
180
i的初始化写成2了于是成功查错2h……怕不是个傻子 设f[i][j]为第i根高为j,转移是 $$ f[i][j]=min(f[i 1][k]+abs(k j) c+(j h[i])^2)(j =h[i],k =h[i 1]) $$ 时间复杂度是1e5\ 1e2\ 1e2,空间复杂度是1e5\ 1e2 ...
分类:
其他好文 时间:
2018-06-22 23:52:12
阅读次数:
216