摘要: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 下次一定记住不要 阅读全文
posted @ 2020-08-18 21:28 程序员曾奈斯 阅读(259) 评论(0) 推荐(0)
摘要: 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 解题思路 排序后遍历(相当于简化后的暴力)O(logn) 借助快排的Partition思想O(n) 上代码(C++香) 法一:排序后遍历(相当于简化后的暴力) class Sol 阅读全文
posted @ 2020-08-18 20:28 程序员曾奈斯 阅读(126) 评论(0) 推荐(0)
摘要: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解题思路 排序后遍历(相当于简化后的暴力)O(logn) 根据数组特点,相当于寻找数组的 阅读全文
posted @ 2020-08-18 19:08 程序员曾奈斯 阅读(159) 评论(0) 推荐(0)
摘要: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 解题思路 回溯法,easy 只不过要注意判断字符可能出现连续的重复,则需要判断 上代码(C++香) #include <io 阅读全文
posted @ 2020-08-18 17:10 程序员曾奈斯 阅读(154) 评论(0) 推荐(0)
摘要: 输入一棵二叉树,将其序列化为char*,并且支持反序列化为二叉树。 解题思路 先序遍历二叉树,序列化 同先序遍历结构,反序列化 代码运行结果没问题,但是未通过所有测试案例。。。 #include <iostream> #include <algorithm> #include <math.h> #i 阅读全文
posted @ 2020-08-18 13:34 程序员曾奈斯 阅读(132) 评论(0) 推荐(0)