社区
Java SE
帖子详情
算法题:找出一个数组中前K个大数的位置
一米怪我咯
2014-04-01 12:27:55
输入:一个数组,k(假设等于10)
输出:这个数组中最大k个数的位置。
现在想到的就只有遍历数组k次。但是觉得这样的做法好笨拙。询问大神有没有好的算法。
...全文
384
2
打赏
收藏
算法题:找出一个数组中前K个大数的位置
输入:一个数组,k(假设等于10) 输出:这个数组中最大k个数的位置。 现在想到的就只有遍历数组k次。但是觉得这样的做法好笨拙。询问大神有没有好的算法。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
-江沐风-
2014-04-01
打赏
举报
回复
用list遍历不知道算不算好的方法
一米怪我咯
2014-04-01
打赏
举报
回复
已经知道怎么做啦。。。再声明一个数组,数组里存放待找出数组的序号(0——n)然后在对输入数组进行排序的时候改变新建数组的相应位置的值,最后根据新建的数组就知道之前数组的最大k个数的位置了。这用空间换时间。。。
获取数组输入K
位置
的最
大数
获取数组输入K
位置
的最
大数
:简单思路 /** * 获取数组输入K
位置
的最
大数
*/ private static int getMaxK(int[] arrs,int k) throws IllegalAccessException { if (k > arrs.length || k < 0 || arrs.length < 0){ throw new IllegalAccessException("请输入大于0.
算法
题
(一)--
找出
数组中
第k大的数并输出其下标(
数组中
的数有重复)
有时候会突然被问到一些
算法
题
,也是面试经常被问的思路问
题
吧,毕竟是师兄们面试回来说的面试考
题
。在这一系列呢,打算把自己每次被问到的仔细思考过的一些
题
都总结下来。方便自己去温习吧,也给大家参考一下我的思路。文章结构:(1)
题
目描述;(2)快排思路解法;(3)堆排思路解法;(4)其他解法思路待续。
从
数组中
找出
最小的k个数
这两天因为一直有面试,所以没有更新博客,不过每天还是会保持做几道
算法
题
,但时间问
题
没能和大家交流,今天我会多分享一些知识希望对大家能有所帮助。那么在这篇博文中我就来和大家深入探讨一下怎样从
数组中
找出
最小的k个数吧,这是阿里一面的时候问我的一道
算法
题
,后来又翻了一下书发现是剑指offer上的原
题
,但当时候因为电面答的也不是很好,有点懊悔呃呃~刚听到这道
题
的时候,想了想直接排序然后查找就...
算法
题
之
找出
数组里第K大的数
问
题
:
找出
一个
数组里面
前
K个最
大数
。 解法一(直接解法): 对数组用快速排序,然后直接挑出第k大的数。这种方法的时间复杂度是O(Nlog(N))。N为原数组长度。 这个解法含有很多冗余,因为把整个数组都排序了,而实际上我们不需要这样做。 解法二(K数组排序): 首先,创建
一个
长度为K的空数组。从原
数组中
先挑出K个数进行排序并放到这个空
数组中
。这一步的时间复杂度是O(Kl...
算法
题
:在N个乱序的
数组中
找第K大的数
在N个乱序的
数组中
找第K大的数 思路: 类似于快速排序,执行一次快速排序之后,每次只选择一部分继续执行快速排序,直到找到第K大个元素为止,这个元素在数组
位置
后面的元素即为所求。 时间复杂度:O(n) 利用快排的思想,从数组arr中随机
找出
一个
元素X,把数组分成两部分arr_a和arr_b。 arr_a中的元素比x大,arr_b中的元素比x小。 这个时候分为两种情况: 1.arr_a中...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章