题目描述 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。 分析与解法 ...
分类:
编程语言 时间:
2018-06-08 00:56:32
阅读次数:
168
算法(Algorithm) 一个有限指令集,接受一些输入(有些情况下不需要输入),产生输出,一定在有限步骤之后终止,每一条指令必须(有充分明确的目标,不可以有歧义,计算机能处理的范围之内,描述应不依赖于任何一种计算机语言以及具体的实现手段)。 什么是好的算法? 空间复杂度S(n):根据算法写成的程序 ...
分类:
编程语言 时间:
2018-06-07 22:01:58
阅读次数:
198
题目: 合并k个有序链表,并将结果用一个有序链表输出 思路: 假设k个链表的总元素数目为n。首先想到两两合并列表,在序列1和2合并,3和4合并,依次类推。直到合并的只剩一个链表。这种操作的时间复杂度为O(nlog(k)),空间复杂度为O(1)。python代码如下: 注意到在mergeTwoList ...
分类:
其他好文 时间:
2018-06-06 15:36:42
阅读次数:
164
排序的基本概念 重点考察稳定性、排序趟数、时间复杂度和空间复杂度。 排序算法类型一:简单排序算法 1.简单选择排序 核心思想:每一趟排序,找到待排序序列中关键字最小的数据元素,将其与待排序序列中的第一个数据元素交换位置,并将其从下一趟待排序序列中移出,重复该过程,直到某趟排序时待排序序列中仅剩下两个 ...
分类:
编程语言 时间:
2018-06-05 21:07:39
阅读次数:
265
1,排序算法的优劣评价标准 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 时间复杂度: 一个算法执行所耗费的时间。 空间复杂度: 运行完一个程序所需内存的大小。 2,算法描述 算法描述:它重复地走访过要排序的 ...
分类:
编程语言 时间:
2018-06-05 11:32:22
阅读次数:
212
层次遍历,问题不大。可惜要用个辅助map,空间复杂度为O(n) ...
分类:
其他好文 时间:
2018-06-03 16:24:37
阅读次数:
111
作为自学的总结,本部分包括基本的算法介绍和***(以后补) Part one. * 算法的基本概念 一个计算过程,解决问题的方法 * 相关复习 递归:自己调用自己,并且有结束条件 * 两个基本属性 时间复杂度:用来评估算法运行效率的一个东西(所用时间) 类比生活中的一些事情,比如:眨眼——一瞬间、口 ...
分类:
编程语言 时间:
2018-06-03 12:40:49
阅读次数:
172
本节代码主要来自王道单科18页的综合应用题。 二、18页第2题。设计一个高效的算法,将顺序表的所有元素逆置,要求算法的空间复杂度为O(1) 核心代码: 可以有两种方式: 第一种:定义两个循环指针i,j,其中i向后遍历,j向前遍历,这种更好记忆。 第二种:j没有定义出来,用i和L.length(即L. ...
分类:
其他好文 时间:
2018-06-02 14:26:27
阅读次数:
242
题目: 给定一个大小为 n 的数组,找出其中所有出现超过 ? n/3 ? 次的元素。 说明: 要求算法的时间复杂度为O(n),空间复杂度为O(1)。 示例 1: 输入: [3,2,3] 输出: [3] 示例 2: 输入: [1,1,1,3,3,2,2,2] 输出: [1,2] 题目: 给定一个大小为 ...
分类:
其他好文 时间:
2018-06-01 00:21:11
阅读次数:
289
时间复杂度和空间复杂度是算法效率的度量方法。 时间复杂度: 算法时间复杂度的定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。 算法的时间复杂度,也就是算法的时间量度,记作:T(n)= O(f(n))。 它表示随问题规模n的 ...
分类:
其他好文 时间:
2018-05-29 19:03:49
阅读次数:
159