LintCode 401-排序矩阵中的从小到大第k个数
来源:互联网 发布:黑龙江统计局数据库 编辑:程序博客网 时间:2024/06/05 01:58
本人电子系,只为一学生。心喜计算机,小编以怡情。
在一个排序矩阵中找从小到大的第 k 个整数。
排序矩阵的定义为:每一行递增,每一列也递增。
您在真实的面试中是否遇到过这个题? Yes
样例
给出 k = 4 和一个排序矩阵:
[
[1 ,5 ,7],
[3 ,7 ,8],
[4 ,8 ,9],
]
返回 5。
思路是广度优先搜索
//自定义的数据结构static public class Data{ public int x,y,data; public Data(int x,int y,int data){ this.x=x; this.y=y; this.data=data; }} static public int kthSmallest(int[][] matrix, int k) { // write your code here if(matrix.length==0) return 0; int visited[][]=new int[matrix.length][matrix[0].length]; ArrayList<Data> temp=new ArrayList<>(); int count=0; temp.add(new Data(0,0,matrix[0][0])); while(!temp.isEmpty()){//广度优先搜索 Data linshi=temp.remove(0); count++; if(count==k)//找到数据时直接返回 return linshi.data; if(linshi.x+1<matrix.length&&visited[linshi.x+1][linshi.y]==0){ temp.add(new Data(linshi.x+1,linshi.y,matrix[linshi.x+1][linshi.y])); visited[linshi.x+1][linshi.y]=1; } if(linshi.y+1<matrix[0].length&&visited[linshi.x][linshi.y+1]==0) { visited[linshi.x][linshi.y+1]=1; temp.add(new Data(linshi.x, linshi.y + 1, matrix[linshi.x][linshi.y + 1])); } Collections.sort(temp,new MyIntComparator());//排序 } return 0; }//自定义的比较器 static class MyIntComparator implements Comparator{ public int compare(Object o1, Object o2) { Data a = (Data)o1; Data b = (Data)o2; int i1=a.data; int i2=b.data; if (i1 < i2){ return -1; } if (i1 > i2){ return 1; } return 0; } }
阅读全文
0 0
- lintcode(401)排序矩阵中的从小到大第k个数
- LintCode 401-排序矩阵中的从小到大第k个数
- LintCode-排序矩阵中的从小到大第k个数
- 排序矩阵中的从小到大第k个数-LintCode
- lintcode排序矩阵中的从小到大第k个数-401(Java版)
- 排序矩阵中的从小到大第k个数
- 排序矩阵中的从小到大第k个数
- lintcode kth-smallest-number-in-sorted-matrix 排序矩阵中的从小到大第k个数
- 题目:排序矩阵中的从小到大第k个数
- 排序矩阵(杨氏矩阵)中的从小到大第k个数(C++)
- 401.Kth Smallest Number in Sorted Matrix-排序矩阵中的从小到大第k个数(中等题)
- 排序矩阵(杨氏矩阵)找从小到大的第K个数(C++)
- 非排序寻找从小到大第3400个数
- 非排序寻找从小到大第3400个数
- Leetcode004--排序数组寻找第k个数
- 寻找数组中的第k个数
- 寻找数组中的第k个数(序)
- N个数中的第k个最大值
- 初学者如何从零学习人工智能?看完你就懂了
- iOS 导航栏黑线问题(隐藏与显示)
- ajax笔记
- Ant之build.xml配置详解
- window下安装多个python环境
- LintCode 401-排序矩阵中的从小到大第k个数
- Grokking Algorithms 算法图解 一本基于Python的算法科普读本
- 求int型正整数在内存中存储时1的个数
- mybatis学习:七
- mahout推荐算法——协同过滤推荐算法(java代码实现)
- solr6使用ansj做中文分词
- 头像上传
- JNI中javah命令的使用,生成.h的头文件的注意事项
- Android使用android.support.v7.widget.CardView在Android5.0显示问题