首页 > 其他分享 >第k小数字

第k小数字

时间:2024-02-04 22:12:11浏览次数:25  
标签:arr java 数字 int mid io import

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static int quickSort(int[] arr, int l, int r, int k){
        if (l == r) {
            return arr[l];
        }
        // 划分为左边小右边大的序列
        int mid = arr[l + r >> 1];
        int i = l - 1, j = r + 1;
        while (i < j){
            while (arr[++i] < mid){};
            while (arr[--j] > mid){};
            if (i < j){
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
        }
        // 如果k是比mid大,则在右边,只需要在右边执行k-Sl,如果k是比mid小,则只需要在左边执行k
        int Sl = j - l + 1;
        if (k <= Sl){
            return quickSort(arr, l, j, k);
        }else {
            return quickSort(arr, j+1, r, k-Sl);
        }
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n,k;
        String nANDk = br.readLine();
        n = Integer.parseInt(nANDk.split(" ")[0]);
        k = Integer.parseInt(nANDk.split(" ")[1]);
        String[] strs = br.readLine().split(" ");
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = Integer.parseInt(strs[i]);
        }
        System.out.println(quickSort(arr,0,n-1,k));
    }
}

 

标签:arr,java,数字,int,mid,io,import
From: https://www.cnblogs.com/YaoMa/p/18007096

相关文章

  • 深度优先遍历例题(排列数字)
    给定一个整数n,将数字1~n排成—排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7#include<iostream>usingnamespacestd;constintN=10;intn;int......
  • 求最大数字-od-python
    求最大数字题目给定一个由纯数字组成以字符串表示的数值,现要求字符串中的每个数字最多只能出现2次,超过的需要进行删除;删除某个重复的数字后,其它数字相对位置保持不变。如34533,数字3重复超过2次,需要删除其中一个3,删除第一个3后获得最大数值4533请返回经过删除操作......
  • 家政小程序:数字化时代的家务助手
    随着科技的快速发展,人们的生活越来越依赖于数字化工具。家政服务作为日常生活的重要组成部分,也在逐渐实现数字化转型。家政小程序正是在这样的背景下应运而生,为消费者提供了一个方便快捷的家务管理平台。一、家政小程序的优势便捷性:家政小程序可随时随地在线预约家政服务,省去了传统......
  • 小乐乐改数字
    题目:小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。输入描述:输入包含一个整数n (0≤n≤109)输出描述:输出一个整数,即小乐乐修改后得到的数字。如,输入:123输出:101......
  • /sys/bus/usb/devices/1-5/1-5:1.0中的1-5:1.0每个数字分别代表什么意思
    在`/sys/bus/usb/devices/`目录下的`1-5:1.0`路径中,这表示USB设备在系统的物理连接布局中的位置和端点信息。该路径描述了连接到USB主机控制器的USB设备及其接口。下面是路径的详细解释:1-5:这部分通常表示设备在USB总线上的连接位置。在这个例子中:`1`通常是USB......
  • Python数据类型——数字、布尔、空类型
    一、数字类型整型int:就是整数,既是整型的代表,又是定义整型的内置函数定义一个整型,并不一定非要使用int浮点类型float:凡是带有小数点的类型,都可以认为是浮点类型。既是浮点型的代表,又是定义浮点型的内置函数定义一个浮点型,并不一定非要使用float内置函数type:返回变量的类型,告诉我......
  • 数字8
    不超过N位的正整数中包含有多少数字8?输入格式一行1个正整数N,范围[1,16]。输出格式一个整数。既然计算数字8的数量不好算,那我们就反着来,计算没8的现在开始推理:一个8:1C(n,1)9^(n-1)C(n,1)->n位数中,选一个当89^(n-1)->剩下n-1位,每一位9种选择两个8:2C(n,2)9^(n-2......
  • 文心一言APP上线新功能,一张照片、三句话即可生成专属数字分身
    只需一张照片、录制三句话,就能拥有一个自己的数字分身?这不是科幻电影,而是文心一言APP上线的新功能-数字分身。目前,文心一言APP正在内测数字分身新功能,明天起,iOS和Android用户升级新版本后,均可免费使用该功能,极速体验创建和使用数字分身的乐趣。据了解,文心一言APP新功能极大缩短了......
  • 代码随想录 day37 单调递增的数字 监控二叉树
    单调递增的数字只想到暴力解法然后超时这里思路是如果从后往前发现不是递增序列那就把前一位--后一位数字变成9然后维护这个变成9的坐标遍历完后把后面的也全部变成9这个对现在的我来说太难了先贴段代码理解一下吧classSolution{intres=0;publicintminCam......
  • 数字中台建设指南
    软件项目全套文档资料下载:https://www.cnblogs.com/ouya921/p/17989620......