日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

leetcode 240. Search a 2D Matrix II | 240. 搜索二维矩阵 II(Java)

發布時間:2024/2/28 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode 240. Search a 2D Matrix II | 240. 搜索二维矩阵 II(Java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

https://leetcode.com/problems/search-a-2d-matrix-ii/

題解

方法1

思路類似于 leetcode 200. Number of Islands | 200. 島嶼數量(Java) 的“感染”過程,從左上角開始找,遞歸其右邊和下邊的格子,同時為了避免重復路線,做了一些優化。trace 用來記錄已經走過的路線。

復雜度分析:這種不走重復路線的遞歸方式,時間復雜度應該是O(m*n)吧,不是很確定。

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int M = matrix.length;int N = matrix[0].length;boolean[][] trace = new boolean[M][N]; // 避免重復路線return process(matrix, trace, 0, 0, target);}public boolean process(int[][] matrix, boolean[][] trace, int m, int n, int t) {if (m == matrix.length || n == matrix[0].length || matrix[m][n] > t) return false;if (matrix[m][n] == t) return true;trace[m][n] = true;if (m + 1 < matrix.length && !trace[m + 1][n] && process(matrix, trace, m + 1, n, t)) return true;else return n + 1 < matrix[0].length && !trace[m][n + 1] && process(matrix, trace, m, n + 1, t);} }

方法2:完美利用矩陣的性質進行查找(最優解)

參考:官方題解

從左下角開始,執行以下操作:如果當前值大于目標值,則向上移動;如果當前值小于目標值,則向右移動。

這樣做永遠不會跳過正確的答案,因為每一行都是升序排列,所以當前值右側的每個值都更大。 每一列都是升序排列,所以當前值上方的每個值都更小,這決定了在每一個位置上,下一步的路線是唯一的。即,如果當前值已經大于目標值,只能向上走,而入如果當前值小于目標值,只能向右走。因此,這種搜索方式將始終在矩陣中找到目標(如果存在)。

關于“如何選出發點”的補充:

  • 選左上角,往右走和往下走都增大,不能選
  • 選右下角,往上走和往左走都減小,不能選
  • 選左下角,往右走增大,往上走減小,可選
  • 選右上角,往下走增大,往左走減小,可選
class Solution {public boolean searchMatrix(int[][] matrix, int target) {int i = matrix.length - 1;int j = 0;while (i >= 0 && j < matrix[0].length) {if (matrix[i][j] == target) return true;else if (matrix[i][j] > target) i--;else j++;}return false;} }

方法3:暴力遍歷

依次比較每個元素。時間復雜度O(m*n)

總結

以上是生活随笔為你收集整理的leetcode 240. Search a 2D Matrix II | 240. 搜索二维矩阵 II(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。