摘要: 题目:求海量数据(正整数)按逆序排列的前k个数(topK),因为数据量太大,不能全部存储在内存中,只能一个一个地从磁盘或者网络上读取数据,请设计一个高效的算法来解决这个问题。 第一行用户输入K,代表要求得topK 随后的N(不限制)行,每一行是一个整数代表用户输入的数据 直到用户输入-1代表输入终止 阅读全文
posted @ 2019-01-18 22:38 |旧市拾荒| 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一个无序数组长度arr,求出需要排序的最短子数组长度。如输入:arr={2,3,7,5,4,6},返回4,因为只有{7,5,4,6}需要排序。注意这儿题目是要求数组按照递增排序。 代码: 总结:拿到这种题目,需要仔细分析,然后发现规律,并且在分析的过程中要考虑各种测试用例,小数据、大数据、 阅读全文
posted @ 2019-01-18 17:04 |旧市拾荒| 阅读(269) 评论(0) 推荐(1) 编辑
摘要: 题目:给定已排序数组,不重复打印arr中所有相加和为k的不降序二元组?扩展题:三元组呢?如输入arr = {-8,-4,-3,0,2,4,5,8,9,10},k=10,那么该输出(0,10) (2,8) 。 思路:一看这道题目就很容易想到循环暴力破解,时间复杂度为n²。这样肯定不太理想,所以得换解法 阅读全文
posted @ 2019-01-18 11:24 |旧市拾荒| 阅读(534) 评论(0) 推荐(1) 编辑
摘要: 基于比较的排序: 基础排序: 冒泡排序:谁大谁上,每一轮都把最大的顶到天花板 效率太低——掌握swap。 选择排序:效率较低,但经常用它内部的循环方式来找最大值和最小值。 插入排序:虽然平均效率低,但是在序列基本有序时,它很快,所以也有其适用范围。 希尔排序(缩小增量排序):是插排的改良,对空间思维 阅读全文
posted @ 2019-01-18 10:23 |旧市拾荒| 阅读(346) 评论(0) 推荐(0) 编辑