leecode 378: 有序矩陣中第k小元素
題目描述:給定n*n矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第k小元素,請注意:是排序後的第k小元素
示例示例
matrix = [
[ 1, 5, 9],
[10, 11, 13],
[12, 13, 15]
],k = 8,
返回 13。
解題思路:
暴力解題法:將矩陣中所有的數讀入一維陣列,對這個一維陣列進行排序,取第k個值
二分解法:
由於是乙個矩陣,左上角的數石最小值,右下角的數石最大值(每行和每列按照公升序排列)
每次取兩個邊界的值進行除以2, 得到乙個mid,然後根據這個mid統計整個矩陣中小於mid值的個數,如果小於mid的值的個數剛好大於等於k,,那麼應該縮小right的值到mid,如果小於k個,那麼說明left應該變成mid
暴力演算法`
class solution {
public int kthsmallest(int matrix, int k) {
//暴力解決
if(matrix.length ==0 || matrix[0].length == 0)
return -1;
int rows = matrix.length;
int cols = matrix[0].length;
int number = rows*cols; //統計矩陣中的所有元素個數
int list = new int[number];
int count = 0;
for (int i =0; i二分演算法:
leecode 二分查詢大全
二分查詢大全 class solution def searchrange self,nums list int target int list int if not nums return 1,1 l len nums defzuo nums,target left,right 0,l 1whil...
迭代二分查詢二分查詢
在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...
LeeCode 1439 暴力 二分
題意 傳送門 1439.有序矩陣中的第 k 個最小陣列和 題解暴力 列舉所有陣列 o n m o n m o nm 考慮到 k kk 值較小,每一次列舉當前行,將子陣列和大小壓縮為 min k,t mp.s ize min k,tmp.size min k,tmp.size 只保留最小的 k kk ...