摘要:題目描述在一個(gè)二維數(shù)組中每個(gè)一維數(shù)組的長(zhǎng)度相同,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。分析例如二維數(shù)組,,如果按照常規(guī)的查找,從開始,那么,和都大于,接下來(lái)該怎么辦呢這就陷入了一個(gè)無(wú)法進(jìn)行下去的局面。
題目描述
在一個(gè)二維數(shù)組中(每個(gè)一維數(shù)組的長(zhǎng)度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù),判斷數(shù)組中是否含有該整數(shù)。
分析例如二維數(shù)組arr = [
[1,2,3,4], [5,6,7,8], [9,10,11,12]
],target=7,如果按照常規(guī)的查找,從arr0開始,那么target>arr0,arr0和arr1都大于arr0,接下來(lái)該怎么辦呢?這就陷入了一個(gè)無(wú)法進(jìn)行下去的局面。
所以,要在一個(gè)數(shù)組中查找某target,則有辦法確定一個(gè)唯一的方向,即下一步該向左還是向右、向上還是向下。
觀察題目,二維數(shù)組的每一行都按照從左向右遞增,每一列都按照從上到下遞增,那么如果從二維數(shù)組的左下角開始,就可以保證向上的都是小的,向右的都是大的,過(guò)程就可以進(jìn)行下去了。
function Find(target, array) { if(array === null) return false; var curRow = array.length-1; var curCol = 0; while(curRow >=0 && curCol < array[0].length){ if(array[curRow][curCol] === target) return true; else if(array[curRow][curCol] > target) curRow--; else curCol++ } return false; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96278.html
摘要:給定表,存在函數(shù),對(duì)任意給定的關(guān)鍵字值,代入函數(shù)后若能得到包含該關(guān)鍵字的記錄在表中的地址,則稱表為哈希表,函數(shù)為哈希函數(shù)。而中的對(duì)象就是基于哈希表結(jié)構(gòu),所以我們構(gòu)造一個(gè)對(duì)象即可,是當(dāng)前遍歷到的值,是其與目標(biāo)值的差。 大部分玩前端的小伙伴,在算法上都相對(duì)要薄弱些,畢竟調(diào)樣式、調(diào)兼容就夠掉頭發(fā)的了,哪還有多余的頭發(fā)再去折騰。 確實(shí)在前端中需要使用到算法的地方是比較少,但若要往高級(jí)方向發(fā)展,...
摘要:題目描述代碼思路思路一按行執(zhí)行二分查找,只要該行的第一個(gè)元素小于目標(biāo),就對(duì)該行二分查找。思路二從數(shù)組的左下角開始查找,如果當(dāng)前值小于目標(biāo),就向右,即如果當(dāng)前值大于目標(biāo),就向上,即?!绢}目描述】 showImg(https://user-gold-cdn.xitu.io/2019/5/22/16addf094e0320ca); 【代碼思路】 思路一:按行執(zhí)行二分查找,只要該行的第一個(gè)元素小于目...
摘要:題目描述代碼思路思路一按行執(zhí)行二分查找,只要該行的第一個(gè)元素小于目標(biāo),就對(duì)該行二分查找。思路二從數(shù)組的左下角開始查找,如果當(dāng)前值小于目標(biāo),就向右,即如果當(dāng)前值大于目標(biāo),就向上,即。【題目描述】 showImg(https://user-gold-cdn.xitu.io/2019/5/22/16addf094e0320ca); 【代碼思路】 思路一:按行執(zhí)行二分查找,只要該行的第一個(gè)元素小于目...
閱讀 1402·2021-10-09 09:44
閱讀 1465·2021-09-28 09:36
閱讀 16157·2021-09-22 15:55
閱讀 1270·2021-09-22 15:45
閱讀 2227·2021-09-02 09:48
閱讀 2812·2019-08-29 17:19
閱讀 2325·2019-08-29 10:54
閱讀 956·2019-08-23 18:40