今天在家困了一不小心睡多了结果晚上睡不着。
一、最长不重复子串
题目:找到一个没有重复字符的子串。
题解:遍历每个字符起始的子串。
大概就是一个数组loc[256]记录最新的字符开始位置,然后一个数组max[256]存最长的子串,复杂度就是O(n+256)
二、N个数字找第k大
题解:1、选择排序:遍历一遍找第一大,遍历一遍找第二大……O(nk)
2、快速排序:找一个基准,划分成比它小的一堆,比它大的另一堆~全部排完……O(n log2 n)
3、找出k个数,建立一个小根堆。如果有新的数比堆顶小,抛弃。比堆顶大就换掉,然后更新堆。O(nlog2k)
本文探讨了在编程中找到最长不重复子串的方法,并对比了不同数据排序算法的时间复杂度,包括选择排序、快速排序和优先级队列(堆)排序的效率分析。
1150

被折叠的 条评论
为什么被折叠?



