剑指offer
文章平均质量分 73
人生半熟
这个作者很懒,什么都没留下…
展开
-
JZ63-----数据流中的中位数
JZ63-----数据流中的中位数分析中位数是位于有序数列的中间,奇数位即中间的数,偶数位的话,是中间两个数的平均值。中位数的前面的数都比它小,后面的数都比他大。中位数比前面数的最大值要大,比后面最小值要小。所以我们只需要关心前面数据的最大值和后面数据的最小值===》想到堆结构、堆排序的特点;数据结构分析若对前半段的数建立大根堆,后半段的数建立小根堆;则中位数可以在两个堆的根中确定。要使得两个堆的根可以确定中位数,需要满足两个堆的节点个数大小相等,或者相差一个。操作分析对大根原创 2021-03-24 17:09:45 · 151 阅读 · 0 评论 -
JZ27----按字典序输出字符串的全排列
JZ27----字符串的排列输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。分析m大小的字符串一共有m!种排列组合;因为字符串中可能有重复字母,所以m!种组合中可能有重复;按字典序打印所有可能,可以对n种组合进行排序;解题思路如何罗列m!种可能?====》递归思想去重====》HashMap查找是否出现过字典序打印====》ArrayList中的sor原创 2021-03-18 12:13:50 · 1304 阅读 · 0 评论