請注意,它是排序後的第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 此題用二分法。給定二維...