时间复杂度

总觉得这里值得再开一个目录出来

 

算法的时间复杂度:

O(1) 常数阶 < O(logn) 对数阶 < O(n) 线性阶 < O(nlogn) < O(n^2) 平方阶 < O(n^3) < { O(2^n) < O(n!) < O(n^n) }

 

先记录一下无重复字符最长子串sjlfsjlfiwjelfijwlhglwiehg怎么去遍历的一个问题

1.暴力法

直接把所有子串拉出来,这里涉及到第一次遍历,从1遍历到n

然后从上一次遍历里面抽出随机的一个,假设就抽第一个,那第一个后面还接了很多,从一到二一直遍历到从一到n,又是n次

所有子串都拉出来了之后,再遍历这个从一到二或者从一到n,再n次

所以暴力法的时间复杂度是O(n^3)

 

######

这里插一个等差数列的求和办法,和=1/2*n*(n+1),也就是只要涉及到一个等差的加法基本两个都视为n算了,最后乘出来也是跟n^2一个量级的。

######

2.滑动窗口办法

首先是全部遍历一遍,从里面抽取一种情况,首先保证这次遍历到的前面有一个不重复区间,然后再把这次遍历到的和这个区间里面的作对比。

保证前面的那个不重复区间会用到Hash办法,而这么算下来就是O(n^2)的复杂度。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值