title: 中等 – 378.有序矩阵中第k小的元素
date: 2020-07-02 20:55:02
tags:
- 数据结构与算法
- leetcode
categories: - 每天一道leetcode
-
中等
toc: true
求一个二维数组中第k小的元素,此数组不一定有序,题目具体内容见正文内链接。
题目链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/
知识点:
- 二维数组转一维数组
- Arrays工具类对数组排序
解法一
代码
/*
* @author: mychangee
* @date: 2020-07-02 18:32
*/
import java.util.Arrays;
class Solution {
/*
* @param: int[][]
* @param: int
* @return: int
*/
public int kthSmallest(int[][] matrix, int k) {
int[] temp = new int[matrix.length*matrix[0].length];
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[0].length;j++){
temp[i*matrix.length+j] = matrix[i][j];
}
}
Arrays.sort(temp);
return temp[k-1];
}
}
思路
- 将二维数组转换成一维数组
- 对一维数组排序
- 取排序后的一位数组中的第k位
问题&解决方法
在将该方法拆分为两个方法时,测试时结果正确,但是提交时报java.lang.ArrayIndexOutOfBoundsException错误,暂不清楚错误原因。
日拱一卒,功不唐捐!