劍指offer編程題Java實現——面試題3二維數組中的查找

題目描述

在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
下面是我實現的代碼,修改下類名(Solution)和方法名(Find)通過了牛客網的測試用例
 1 public class No2Array{
 2     public static void main(String[] args){
 3         int[][] array={{1,2,8,9},
 4                     {2,4,9,12},
 5                     {4,7,10,13},
 6                     {6,8,11,15}};
 7         System.out.println(findByTheUpperRightCorner(5,array));
 8         System.out.println(findByTheLowerLeftCorner(7,array));
 9     }
10     
11     /*
12      * 選取數組查找范圍內的右上角的數字,如果該數字等于要查找的數字,則查找結束。
13      * 如果該數字小于要查找的數字,則剔除該數字所在的行;
14      * 如果該數字大于要查找的數字,則剔除該數字所在的列;
15      */
16     public static boolean findByTheUpperRightCorner(int target, int [][] array) {
17         if(array.length>0){
18             int    rows=array.length;
19             int columns=array[0].length;
20             int row=0;
21             int column=columns-1;
22             while(row<rows&&column>=0){
23                 if(array[row][column]==target)
24                     return true;
25                 if(array[row][column]>target)
26                     column--;
27                 else
28                     row++;
29             }
30             return false;
31         }
32         return false;
33     }
34     
35     /*
36      * 選取數組查找范圍內的左下角的數字,如果該數字等于要查找的數字,則查找結束;
37      * 如果該數字小于要查找的數字,則剔除該數字所在的列;
38      * 如果該數字大于要查找的數字,則剔除該數字所在的行;
39      */
40     public static boolean findByTheLowerLeftCorner(int target,int[][] array){
41         if(array.length>0){
42             int rows=array.length;
43             int columns=array[0].length;
44             int row=rows-1;
45             int column=0;
46             while(row>=0&&column<columns){
47                 if(array[row][column]==target)
48                     return true;
49                 if(array[row][column]<target)
50                     column++;
51                 else
52                     row--;
53             }
54             return false;
55         }
56         return false;
57     }
58 }

通過選取右上角和左上角的兩種實現思路都給出了實現代碼,明白其中一個原理另外一個也就很容易了。關鍵是不能選取左上角或者右下角的數組作為對比,比如選取左上角的數字小于查找的值,那么該數字的下面數字和右面數字都有可能是要查找的范圍,這樣無法縮小查找范圍。所以只要知道從右上角或者左下角進行查找就很容易解決了。

轉載于:https://www.cnblogs.com/gl-developer/p/6431331.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284511.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284511.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284511.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mpvue開發小程序分享朋友圈無法自定義標題解決方法

在node_modules里面找到mpvue&#xff0c;手動修改一下mpvue這個包下的index.js文件 // 用戶點擊右上角分享 到朋友圈 onShareTimeline: rootVueVM.$options.onShareTimeline? function (options) { return callHook$1(rootVueVM, onShareTimeline, options); } : null,找到 L…

【ArcGIS Pro微課1000例】0020:ArcGIS Pro中河流(曲線)、湖泊(水體色)圖例制作案例教程

相關閱讀:【ArcGIS微課1000例】0032:ArcGIS中河流(曲線)、湖泊(水體色)圖例制作案例教程 河流、湖泊的樣式設置功能在ArcGIS Pro得到了延續,本文講解ArcGIS Pro中河流湖泊圖例的設置方法。 《ArcGIS Pro從入門到精通系列精品教程(微課版)》專欄包括完整的實驗數據包,…

swift學習選pizza項目

2019獨角獸企業重金招聘Python工程師標準>>> 原文: https://makeapppie.com/2014/09/18/swift-swift-implementing-picker-views/ 效果: 步驟: 新建iOS single view application 名字為SwiftPickerViewPizzaDemo, 打開main storyboard選中view controoler, 右上角, …

Windows 11 新版 25163 推送!任務欄全新菜單、應用商店更新、文件資源管理器大量修復...

面向 Dev 頻道的 Windows 預覽體驗成員&#xff0c;微軟現已推送 Windows 11 預覽版 Build 25163。主要變化1.微軟宣布為 Windows 11 任務欄引入全新溢出體驗&#xff0c;當任務欄上的應用程序圖標或窗口達到任務欄容量上限時&#xff0c;將啟用全新溢出菜單。2.微軟更新了 Mic…

shell中source與sh區別

shell中使用source conf.sh&#xff0c;是直接運行conf.sh的命令&#xff0c;不創建子shell&#xff0c;類似與html中include&#xff0c;而sh是則創建子shell&#xff0c;子shell里面 的變量父shell無法使用&#xff0c;對環境變量的修改也不影響父shell。父shell中的局部變量…

[轉]Web3 是去中心化的“騙局”?

作者 | InvisibleUp 譯者 | 彎月 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; Web3 不是去中心化。 雖然我覺得這一點很明顯&#xff0c;根本不需要通過一篇文章來說明&#xff0c;但我也是迫不得已&#xff0c;因為突然之間各大科技巨頭&#xff0c;比如 Redd…

實景三維建設背景下,三維GIS面臨哪些挑戰?

2021年8月26日&#xff0c;自然資源部印發《實景三維中國建設技術大綱&#xff08;2021版&#xff09;》&#xff0c;明確指出“實景三維中國建設是落實數字中國、平安中國、數字經濟戰略的重要舉措&#xff0c;是落實國家新型基礎設施建設的具體部署&#xff0c;是服務生態文明…

無需編碼,自動實現“異步 Request-Reply”模式

前言上次&#xff0c;我們雖然用代碼實現了“異步 Request-Reply 模式”&#xff0c;但是需要為每一個長時間操作 API 實現一個對應的 AsyncXXX 操作。其實&#xff0c;可以嘗試用 Source Generators 減少這種重復性勞動。實現思路Controller 類必須是partial,這樣才能為它額外…

Kotlin Weekly 中文周報

Kotlin Weekly 中文周報 —— 25 Kotlin 開發中文周報 文章 使用 Kotlin 中的 takeIf &#xff08;zhuanlan.zhihu.com&#xff09; 在 Kotlin 的標準函數中有個 takeIf 函數&#xff0c;你是否了解這個函數呢&#xff1f;它是否只是漂亮點的 if 語句呢&#xff1f; Kotlin 的…

第一次玩,試試手(標題)

Hello Blog&#xff01;&#xff01;轉載于:https://blog.51cto.com/10999994/1786094

【CASS精品教程】CASS9.1生成標準圖幅案例教程

在CASS中,可以很方便的生成標準圖幅,如50*50。本文演示cass中,根據測區范圍標準圖幅生成過程。 一、圖幅預覽: 二、圖幅生成 打開測區范圍,如下圖所示: 點擊【繪圖處理】→【批量分幅】→【格網建立】,如下圖所示: 選擇比例尺500,直接回車。 選擇圖幅50*50。 根據測區…

[轉]mpvue中的小程序調用系統自帶查看圖片的功能

mpvue中的小程序調用系統自帶查看圖片的功能 這里舉個栗子&#xff1a; <template><div class"keting"><div class"centsimg dja"><swiper:current"curr"display-multiple-items"1"next-margin"0rpx"c…

隱馬爾科夫

前向、后向算法解決的是一個評估問題&#xff0c;即給定一個模型&#xff0c;求某特定觀測序列的概率&#xff0c;用于評估該序列最匹配的模型。Baum-Welch算法解決的是一個模型訓練問題&#xff0c;即參數估計&#xff0c;是一種無監督的訓練方法&#xff0c;主要通過EM迭代實…

去創業公司不能有一夜暴富的僥幸,更不能指望掉餡餅

為了實現財務自由&#xff0c;去創業公司是一個不錯的選項&#xff0c;我自己也去過創業公司&#xff0c;身邊的朋友也有不少去過或正在創業公司里干&#xff0c;我就結合下我經歷過的和我看到的&#xff0c;說下我的感受。 1 該去哪種類型的創業公司 第一&#xff0c;這個公司…

分布式日志收集系統 - ExceptionLess的安裝、配置、使用

前言Exceptionless 是一個開源的實時的日志收集框架&#xff0c;它可以應用在基于 ASP.NET&#xff0c;ASP.NET Core&#xff0c;Web API&#xff0c;Web Forms&#xff0c;WPF&#xff0c;Console&#xff0c;ASP.NET MVC 等技術開發的應用程序中&#xff0c;并且提供了REST接…

[轉]使用npm發布vue組件

&#x1f636; NPM 是隨同 NodeJS 一起安裝的 javascript 包管理工具&#xff0c;能解決 NodeJS 代碼部署上的很多問題 發布前的準備 注冊一個 npm 賬號 前往 NPM 官網進行注冊 初始化項目 這里用的是webpack-simple,可以理解為精簡版的vue-cli。 如果沒有全局安裝 vue 的話&am…

[置頂]tcpflow 抓包

轉自&#xff1a; http://www.rwifeng.com/jekyll/update/2015/04/16/how-to-tcpflow/ tcpflow 抓包 Apr 16, 2015 大家都知道 tcpdump 是一個很方便的抓包工具&#xff0c; 但是 tcpdump 是以包為單位進行輸出的&#xff0c;閱讀起來不是很方便。 而 tcpflow 是面向 TCP 流的…

spark-2.1.0 集群安裝

1、spark安裝前提——必須安裝好Hadoop&#xff08;本人有三臺機&#xff0c;已安裝好Hadoop&#xff09; 2、下載spark&#xff0c;解壓至master機本地文件 3、修改/conf/spark-env.sh&#xff08;原名spark-env.sh.template&#xff0c;把它改過來&#xff09; 配置如下&…

如何用grep命令同時顯示“匹配行”上下的n行?

如何用grep命令同時顯示匹配行上下的n行 標準unix/linux下的grep通過以下參數控制上下文grep -C 5 foo file 顯示file文件中匹配foo字串那行以及上下5行grep -B 5 foo file 顯示foo及前5行grep -A 5 foo file 顯示foo及后5行

【CASS精品教程】CASS自動插入DOM影像(附插件下載)

本文講解在CASS中快速自動插入柵格數據(影像、DOM、DEM)等,支持tif、img等格式。 文章目錄 一、效果預覽二、插件安裝三、插件下載一、效果預覽 二、插件安裝 打開CASS9.1軟件,輸入命令appload,回車。 選擇插入影像插件,點擊【加載】。 輸入命令aimg,回車,可以進行影像…