栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

J40最小的k个数

Java 更新时间:发布时间: 百科书网 趣学号

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。

  • Arrays.copyOf(原数组,新数组长度)
  • 跟找出第k个一样,只不过gettop,返回int[]
  • 快排、找出topk
Arrays.copyOf() 用法
import java.util.Arrays;

public class ArrayDemo {
	public static void main(String[] args) {
    	int[] arr1 = {1, 2, 3, 4, 5}; 
    	int[] arr2 = Arrays.copyOf(arr1, 5);
    	int[] arr3 = Arrays.copyOf(arr1, 10);
arr1:1 2 3 4 5 
arra:1 2 3 4 5 0 0 0 0 0

	}
} 

class Solution {
    public int[] getLeastNumbers(int[] arr, int k) {
        if(k==0||arr.length==0){
            return new int[]{};
        }
        return gettopk(arr,k);

    }
    //找出前k个最小的数
    int[] gettopk(int[] nums,int k){//返回的是int[]
        int low=0;
        int high=nums.length-1;
        while(true){
            int index=partition(nums,low,high);
            if(index==k-1){
                return Arrays.copyOf(nums,k);
            }
            else if(indexpivot){
                high--;
            }
            nums[low]=nums[high];
            while(low
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/295620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号