LeetCode 378 有序矩陣中第K小的元素

2021-09-29 23:54:38 字數 613 閱讀 6195

請注意,它是排序後的第k小元素,而不是第k個元素。

示例:matrix = [

[ 1, 5, 9],

[10, 11, 13],

[12, 13, 15]

],k = 8,

返回 13。

分析:

解法一是利用的數的二分法,輸出的數會在矩陣中,可以通過證明出來,因為從低到高每次增加一,所以從低到高一定會到達矩陣中的某個元素,count才會變化,而從高到低會出現不在矩陣中的元素,但是最終是要start=end才返回,因此還會繼續縮小最大值的範圍,一直到跟start一樣。而start從下往上一定會在矩陣中。

解法二是利用的把每一行看成乙個棧,一直比較出棧到第k個值

#includeclass solution else

}return count;

}*/int kthsmallest(vector>& matrix, int k)

}jindex[minindex] += 1;//當做是出棧

k--;

if(k==0)

break;

}return min;

}};

leetcode 378 有序矩陣中第K小的元素

給定乙個 n x n 矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第k小的元素。請注意,它是排序後的第k小元素,而不是第k個元素。示例 matrix 1,5,9 10,11,13 12,13,15 k 8,返回 13。說明 你可以假設 k 的值永遠是有效的,1 k n2 class solut...

leetcode 378 有序矩陣中第K小的元素

給定乙個 n x n 矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第k小的元素。請注意,它是排序後的第k小元素,而不是第k個元素。示例 matrix 1,5,9 10,11,13 12,13,15 k 8,返回 13。說明 你可以假設 k 的值永遠是有效的,1 k n2 解題方法 使用優先佇列...

LeetCode 378 有序矩陣中第K小的元素

給定乙個 n x n 矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第k小的元素。請注意,它是排序後的第k小元素,而不是第k個元素。示例 matrix 1,5,9 10,11,13 12,13,15 k 8,返回 13。說明 你可以假設 k 的值永遠是有效的,1 k n2 此題用二分法。給定二維...