摘要:
输入n个数,找出其中最小的k个数。例如输入4,5,1,6,2,7,3,8 这8个数,则最小的4个数是1,2,3,4.
解法一:O(n)的算法,只有当我们可以修改输入数组时可用
解法二:O(nlogk)的算法,特别适合处理海量数据 阅读全文
摘要:
set和multiset会根据特定的排序准则,自动将元素排序。两者不同处在于multiset允许元素重复而set不允许。 阅读全文
摘要:
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
例如输入数组:{1,3,3,2,3,2,3,3,2}。由于2在数组中出现了5次,超过数组长度的一半,因此要输出2。
有两种解法:
第一种方法是基于快速排序算法的原理,边排序边判断是否符合输出条件。这种方法的代码我因为没有保存,在电脑蓝屏之后全部消失了·······~~~~(_)~~~~ 呜呜。
第二种方法是根据数组特点找出的算法,时间复杂度为O(n),且不用改变数组本身结构。 阅读全文