java编程题库 一道java面试题,20亿数字的文本排序,如何取前100?
浏览量:1924
时间:2021-04-04 05:21:10
作者:admin
一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度是k,时间复杂度是nlogk
对于这个问题,我考虑了一段时间,想出了一个比较愚蠢的方法。如果你有其他方法,请给我你的建议。
让我们明确一下,我们需要购买所有四种鸡。或者传统的思维方式,建立未知,建立方程。你看,有四个未知数,两个方程式。为了顺利地解决这个问题,我们可以假设C和D是已知量,这样a和B可以用含有C和D的公式来表示,请注意这里的C只能取3的整数倍,如3、6、9等,这里的D只能取4的整数倍,如4、8、12等,公式中有一个分数,不易计算,容易出错,需要更换。当m等于1时,n的值由a和B的表达式确定。其他解也可以用同样的方法得到。
java编程题库 java解决鸡兔同笼 python程序求百钱百鸡
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。