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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找

發(fā)布時(shí)間:2024/9/27 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

算法名稱:二維數(shù)組中的查找

題目?jī)?nèi)容:在一個(gè)二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù),判斷數(shù)組中是否含有該整數(shù)。

解題思路:

首先選取數(shù)組中右上角的數(shù)字。如果該數(shù)字等于要查找的數(shù)字,查找過程結(jié)束;如果該數(shù)字大于要查找的數(shù)字,剔除這個(gè)數(shù)字所在的列;如果該數(shù)字小于要查找的數(shù)字,剔除這個(gè)數(shù)字所在的行。也就是說如果要查找的數(shù)字不在數(shù)組的右上角,則每一次都在數(shù)組的查找范圍中剔除一行或者一列,這樣每一步都可以縮小查找的范圍,直到找到要查找的數(shù)字,或者查找范圍為空。

例如,我們要在上述的二維數(shù)組中查找數(shù)字7的步驟如下圖所示:

實(shí)例代碼:

  • Java
class Solution {public boolean findNumberIn2DArray(int[][] matrix, int target) {if (matrix.length > 0 && matrix[0].length > 0) {int row = 0;int colomn = matrix[0].length - 1;while (row < matrix.length && colomn >= 0) {if (target < matrix[row][colomn]) {colomn--;} else if (target > matrix[row][colomn]) {row++;} else if (target == matrix[row][colomn]) {return true;}}}return false;}}
  • Golang版
func findNumberIn2DArray(matrix [][]int, target int) bool {if len(matrix) > 0 && len(matrix[0]) > 0 {row := 0colomn := len(matrix[0]) - 1for row < len(matrix) && colomn >= 0 {if target < matrix[row][colomn] {colomn--} else if target > matrix[row][colomn] {row++} else if target == matrix[row][colomn] {return true}}}return false}

本題考點(diǎn):

  • 考察面試者對(duì)二維數(shù)組的理解及編程能力。二維數(shù)組在內(nèi)存中占據(jù)連續(xù)的空間。在內(nèi)存中從上到下存儲(chǔ)各行元素,在同一行中按照從左到右的順序存儲(chǔ)。因此我們可以根據(jù)行號(hào)和列號(hào)計(jì)算出相對(duì)于數(shù)組首地址的偏移量,從而找到對(duì)應(yīng)的元素。

總結(jié)

以上是生活随笔為你收集整理的隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。