博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
寻找第K大
阅读量:4166 次
发布时间:2019-05-26

本文共 1156 字,大约阅读时间需要 3 分钟。

题目描述

有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。

测试样例:

[1,3,5,2,2],5,3
返回:
2

https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf?tpId=188&&tqId=35164&rp=1&ru=/ta/job-code-high-week&qru=/ta/job-code-high-week/question-ranking

import java.util.*;public class Finder {
public int findKth(int[] a, int n, int K) {
return quickSort(a, 0, a.length - 1, K); } public int quickSort(int[] arr, int l, int r, int k) {
int p = partition(arr, l, r); if (p == k-1) {
return arr[p]; } else if (p > k-1) {
return quickSort(arr, l, p-1, k); } else {
return quickSort(arr, p+1, r, k); } } public int partition(int[] arr, int l, int r) {
int target = arr[l]; int x = l; for (int i = l+1; i <= r; i++) {
if (arr[i] > target) {
swap(arr, i, ++x); } } swap(arr, x, l); return x; } public void swap(int[] arr, int i, int j) {
int t = arr[i]; arr[i] = arr[j]; arr[j] = t; }}

转载地址:http://ggrxi.baihongyu.com/

你可能感兴趣的文章
IOS设置UIView的边框为圆角
查看>>
UIView CALayer 属性不显示错误 Property cannot be found in forward class object 'CALayer
查看>>
UIView和CALayer的区别
查看>>
iOS动画效果和实现
查看>>
把两台电脑直连实现高速访问
查看>>
IOS icon的尺寸
查看>>
win7下计划任务schtasks使用详解及"错误:无法加载列资源"的解决方法
查看>>
windows下cmd命令行显示UTF8字符设置(CHCP命令)
查看>>
使用Batch_Compiler把bat,cmd命令行转成exe
查看>>
使用rsa算法制作license时出现IBM JDK 公钥解密错误
查看>>
Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)
查看>>
没有调试日志的问题 Unable to open log device ‘/dev/log/main’: No such file or directory
查看>>
调用android系统相机拍照并保存
查看>>
android intent和intent action大全
查看>>
CentOS 网络设置修改
查看>>
Centos搭建SVN服务器三步曲
查看>>
VMware-Workstation-6.5.1-126130.x86_64.bundle 安装卸载
查看>>
centos 安装 virtualbox
查看>>
CentOS下设置MySQL的root密码
查看>>
activity的切换问题(activity与栈)
查看>>