求无序数组中最小的k个数

本文介绍如何从一个无序数组中找出最小的k个数,保持原有顺序。通过创建两个辅助数组,排序后找到第k个值作为基准,遍历原数组并与基准比较,将小于等于基准的数存入结果数组。
摘要由CSDN通过智能技术生成

题目描述

对于一个无序数组,数组中元素为互不相同的整数,请返回其中最小的k个数,顺序与原数组中元素顺序一致。
给定一个整数数组A及它的大小n,同时给定k,请返回其中最小的k个数。
测试样例:
[1,2,4,3],4,2
返回:[1,2]

思想:首先创建两个数组,一个命名为C用来保存最小的k个值,一个命名为B用来复制A数组的值,然后对B进行排序,找到第K个值赋值给temp,将A数组中的元素与一一与temp进行比较,小于等于temp的就保存到C数组,否则不做任何操作,直到找到所有的值为止

import java.util.*;

public class KthNumbers {
    public int[] findKthNumbers(int[] A, int n, int k) {
        // write code here
        int temp =0;
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值