社区讨论

80分求debug

P1138第 k 小整数参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@misxkye5
此快照首次捕获于
2025/12/05 21:59
3 个月前
此快照最后确认于
2025/12/07 16:45
3 个月前
查看原帖
C
#include <stdio.h>

void q_sort(int *arr,int start,int end){
    if(start >= end){
        return;
    }
    int left = start;
    int right = end;
    int pivot = arr[left];
    while(left < right){
        while(arr[right] > pivot && left < right){
            right--;
        }
        if(left < right){
            arr[left] = arr[right];
            left++;
        }
        while(arr[left] < pivot && left < right){
            left++;
        }
        if(left < right){
            arr[right] = arr[left];
            right--;
        }
        
    }
    arr[left] = pivot;
    q_sort(arr,start,left-1);
    q_sort(arr,left+1,end);
}

int main(){
    int n,k,count = 1;
    int num[10001],unique[10001];
    scanf("%d%d",&n,&k);
    for(int i = 1;i <= n;i++){
        scanf("%d",&num[i]);
    }
    q_sort(num,1,n);
    for(int i = 1;i <= n;i++){
        if(num[i+1] != num[i]){
            unique[count++] = num[i];
        }
    }
    if(count < k){
        printf("NO RESULT");
    }
    else{
        printf("%d",unique[k]);
    }
    return 0;
}
找不到怎么过剩下两个测试点了,蒟蒻求助

回复

0 条回复,欢迎继续交流。

正在加载回复...