java web 一道java面试题,20亿数字的文本排序,如何取前100?
一道java面试题,20亿数字的文本排序,如何取前100?因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最
一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为k,时间复杂度为nlogk
使用string类的substring(int-from,int-to)方法截断位置为from-to-1的字符。子串(int-index)方法用于截断位置为index-1或更高的字符。注意字符串的字符位置从0开始,substring(int-from,int-to)方法用于截断位置从-1到-1的字符。该方法是前闭后开的,即[from,to],可以理解为[from,to-1]。示例:String name=“你好世界”系统输出打印( 名称.子字符串( 名称.长度()-1, 名称.长度())//输出dSystem.out.println( 名称.子字符串( 名称.长度()-1))//输出D