摘要:
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。输入:每个测试案例包括2行:第一行为2个整数n,k(1<=n,k<=200000),表示数组的长度。第二行包含n个整数,表示这n个数,数组中的数的范围是[0,1000 000 000]。输出:对应每个测试案例,输出最小的k个数,并按从小到大顺序打印。样例输入:8 44 5 1 6 2 7 3 8样例输出:1 2 3 4可以用一个K大小的最大队来做,当堆的个数<K时放入,否则当堆的根大于当前数,弹出堆的根,插入当前数。另外一种就是用partitio 阅读全文
摘要:
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入:每个测试案例包括2行:第一行输入一个整数n(1<=n<=100000),表示数组中元素的个数。第二行输入n个整数,表示数组中的每个元素,这n个整数的范围是[1,1000000000]。输出:对应每个测试案例,输出出现的次数超过数组长度的一半的数,如果没有输出-1。样例输入:91 2 3 2 2 2 5 4 2样例输出:2这道题可以分两种方法做。方法1:类似于消除原理,既然某个数字 阅读全文