LeetCode 1428. 至少有一个 1 的最左端列(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1428. 至少有一个 1 的最左端列(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
- 2.1 二分查找
- 2.2 直接走階梯
1. 題目
(這是一個交互題)
我們稱只包含元素 0 或 1 的矩陣為二進制矩陣。
矩陣中每個單獨的行都按非遞減順序排序。
給定一個這樣的二進制矩陣,返回至少包含一個 1 的最左端列的索引(從 0 開始)。
如果這樣的列不存在,返回 -1。
您不能直接訪問該二進制矩陣。
你只可以通過 BinaryMatrix 接口來訪問。
- BinaryMatrix.get(row, col) 返回位于索引 (row, col) (從 0 開始)的元素。
- BinaryMatrix.dimensions() 返回含有 2 個元素的列表 [rows, cols],表示這是一個 rows * cols的矩陣。
如果提交的答案調用 BinaryMatrix.get 超過 1000 次,則該答案會被判定為錯誤答案。提交任何試圖規避判定機制的答案將會被取消資格。
下列示例中, mat 為給定的二進制矩陣。您不能直接訪問該矩陣。
示例 1:
示例 2:
示例 3:
示例 4:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/leftmost-column-with-at-least-a-one
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 二分查找
- 對每一行進行二分查找,查找最左側的1的位置,O(m log n) 時間復雜度
12 ms 8.3 MB
2.2 直接走階梯
- 在右下角或者右上角,開始出發,遇到0豎向走,遇到1往左走,O(m+n)時間復雜度
8 ms 8.2 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1428. 至少有一个 1 的最左端列(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1267. 统计参与通
- 下一篇: LeetCode 1318. 或运算的最