OR107. 有序矩阵中第K小的元素
描述
给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。输入描述
第一行为k的值和矩阵的n的值输出描述
矩阵中第k小的元素示例1
输入:
8 3 1 5 9 10 11 13 12 13 15
输出:
13
C 解法, 执行用时: 1ms, 内存消耗: 228KB, 提交时间: 2020-05-20
#include<stdio.h> int main(void){ int n,i,j,k,temp; scanf("%d",&k); scanf("%d",&n); int M[n*n]; for(i=0;i<n*n;i++){ scanf("%d",&M[i]); } for(i=0;i<=n*n-1;i++){ for(j=i;j<=n*n-1;j++) { if(M[j]<M[i]){ temp=M[j]; M[j]=M[i]; M[i]=temp; } } } printf("%d",M[k-1]); }
C 解法, 执行用时: 1ms, 内存消耗: 228KB, 提交时间: 2019-12-10
#include<stdio.h> int main(void){ int n,i,j,k,temp; scanf("%d",&k); scanf("%d",&n); int M[n*n]; for(i=0;i<n*n;i++){ scanf("%d",&M[i]); } for(i=0;i<=n*n-1;i++){ for(j=i;j<=n*n-1;j++) { if(M[j]<M[i]){ temp=M[j]; M[j]=M[i]; M[i]=temp; } } } printf("%d",M[k-1]); }