Java二維數(shù)組查找功能代碼實(shí)現(xiàn)
題目描述:
在一個二維數(shù)組中(每個一維數(shù)組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。
題目分析:
根據(jù)二維數(shù)組的特點(diǎn)可知,二維數(shù)組相當(dāng)于一個矩陣; 根據(jù)題意可知該數(shù)組是有序的,因此該矩陣元素相當(dāng)于是從小到大排列的; 如果從左下角開始查找較方便,因?yàn)樽笙陆堑闹迪蛏鲜沁f減的,向右是遞增的; 當(dāng)從左下角開始比較時,如果target傳入的數(shù)大于它則列數(shù)加一進(jìn)行比較 ,如果小于它則行數(shù)減一進(jìn)行比較。代碼:
public class Solution { public boolean Find(int target, int [][] array) { int rows = array.length; //定義行數(shù) int lies = array[0].length; //定義列數(shù) int i = 0; //i用于計(jì)數(shù) while((rows>0)&&(i<lies)) //while中不滿足條件時即停止循環(huán) { if(target>array[rows-1][i])//當(dāng)目標(biāo)大于左下角的值時,讓列數(shù)自增{ i++;}else if(target<array[rows-1][i])//當(dāng)目標(biāo)小于左下角的值時,讓行數(shù)自減{ rows--;}else{ //當(dāng)前兩種都不是時,說明找到目標(biāo) return true;} }//遍歷完還沒找到,說明目標(biāo)在數(shù)組中不存在return false; }}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python+unittest+requests 接口自動化測試框架搭建教程2. Python的文本常量與字符串模板之string庫3. 利用CSS制作3D動畫4. 存儲于xml中需要的HTML轉(zhuǎn)義代碼5. 完美解決vue 中多個echarts圖表自適應(yīng)的問題6. jsp+servlet簡單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))7. 一款功能強(qiáng)大的markdown編輯器tui.editor使用示例詳解8. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程9. Java GZip 基于內(nèi)存實(shí)現(xiàn)壓縮和解壓的方法10. SpringBoot+TestNG單元測試的實(shí)現(xiàn)
