题目:在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始。 思路:使用类似哈希表的结构,统计次数然后返回第一个出现次数为1的字符。时间和空间复杂度均为O(n)。 实现代码: ...
分类:
其他好文 时间:
2016-05-07 19:45:49
阅读次数:
149
(一)
直接插入排序(Straight Insertion Sorting)的基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
复杂度:时间复杂度 O(n2)
,空间复杂度O(1)
稳定性: 插入排序是稳定的,排序前后两个相等元素相对次序不变(能...
分类:
编程语言 时间:
2016-05-07 11:15:51
阅读次数:
268
* 为了实现N个数的排序,将后面N-1个数依次插入到前面已排好的子序列中, *假定刚开始第1个数是一个已排好序的子序列。经过N-1趟就能得到一个有序序列。 *****时间复杂度:最好情况O(n),最坏情况O(n^2),平均情况O(n^2). *****空间复杂度:O(1) *****稳定性:稳定 # ...
分类:
编程语言 时间:
2016-05-07 06:32:01
阅读次数:
235
题目大意:给定一个整数数组,其中除两个数字只出现一次外,其余数字均出现两次。找出这两个只出现一次的数字。例如:给定 nums = [1, 2, 1, 3, 2, 5],返回 [3, 5]注意:结果的顺序不重要。因此在上例中,[5, 3]也是正确的。你的算法应该满足线性时间复杂度。你可以只使用常数空间复杂度完成题目吗?解题思路1:使用字典,利用语句:dic[num]=dic.get(num,0)+1...
分类:
其他好文 时间:
2016-05-06 15:29:34
阅读次数:
141
归并排序 算法平均时间复杂度:O(nlog2n) 算法空间复杂度:O(n) (用于存储有序子序列合并后有序序列) 原理:所谓归并排序是指将两个或两个以上有序的数列(或有序表),合并成一个仍然有序的数列(或有序表)。这句话讲的非常明白,有序,前提就是有序。 步骤分析: 1、划分子集 2、合并子集 先说 ...
分类:
编程语言 时间:
2016-05-05 02:04:51
阅读次数:
216
第一种:思路:遍历一个字符串,遇到空格向后移动三个char空间,插入%20,直到遍历结束。时间复杂度O(n^2)空间复杂度O(1)#include<iostream>
#include<stdlib.h>
#include<assert.h>
usingnamespacestd;
voidmemmove(void*src,void*des,size_tsize)
{
char*..
分类:
其他好文 时间:
2016-05-02 17:09:08
阅读次数:
149
相信大家都对斐波那契数列已经相当的熟悉了,最多两分钟就可以写出来以下时间复杂度为O(N)的代码://递归实现
longlongfib(intn)
{
if(n=1||n==2)
{
return1;
}
return(fib(n-2)+fib(n-1));
}或者是这样的时间复杂度为O(N),空间复杂度为O(1)://优化一:时间复杂度为O(N..
分类:
编程语言 时间:
2016-05-01 01:17:01
阅读次数:
806
排序算法:一种能将一串数据依照特定的排序方式进行排列的一种算法。
排序算法性能:取决于时间和空间复杂度,其次还得考虑稳定性,及其适应的场景。
稳定性:让原本有相等键值的记录维持相对次序。也就是若一个排序算法是稳定的,当有俩个相等键值的记录R和S,且原本的序列中R在S前,那么排序后的列表中R应该也在S之前。 以下来总结常用的排序算法,加深对排序的理解。排序算法目录
冒泡排序
插入排序
希尔排序...
分类:
编程语言 时间:
2016-04-29 19:53:05
阅读次数:
192
排序算法:一种能将一串数据依照特定的排序方式进行排列的一种算法。
排序算法性能:取决于时间和空间复杂度,其次还得考虑稳定性,及其适应的场景。
稳定性:让原本有相等键值的记录维持相对次序。也就是若一个排序算法是稳定的,当有俩个相等键值的记录R和S,且原本的序列中R在S前,那么排序后的列表中R应该也在S之前。 以下来总结常用的排序算法,加深对排序的理解。排序算法目录
冒泡排序
插入排序
希尔排序...
分类:
编程语言 时间:
2016-04-26 21:50:19
阅读次数:
215
问题描述:给定两个字符串str1和str2,字符串中只包含字母(区分大小写)和数字,并且字符可以重复。现在让你判断str2中的字符是否都来源于str1中的字符(假设str1的长度为m,str2的长度为n)?限制时间复杂度为O(m+n),空间复杂度为O(1)。 分析:采用暴力法可以很容易地实现要求,但 ...
分类:
其他好文 时间:
2016-04-24 15:43:03
阅读次数:
196