劍指offer(Javascript-3 二維數(shù)組的查找)

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

  • 算法思路:
    在二位數(shù)組中查找,由于數(shù)組是有順序的,所以在右上角或者左下角開始查找,每次比較大小都能排除一行或者一列,一直循環(huán)找下去即可。
  • 實(shí)現(xiàn)思路:
    采用while循環(huán),每比較一次就按查找的目標(biāo)前進(jìn)一行或者一列
function findNumber(arr, num) {
                var row = arr.length;
                var i = row - 1;
                var col=arr[0].length;
                var j = 0;
                while (i >= 0 && j<=col-1) {
                    if (arr[i][j] > num) {
                        i--;
                    } else if (arr[i][j] < num) {
                        j++;
                    } else {
                        return true;
                    }
                }
                return false;
            }

for循環(huán)

  function findNumber(arr, num) {
                var row = arr.length;
                var col=arr[0].length;
                for (var i = 0; i < row;i++) {
                    for (var j = col-1; j >=0; j--) {
                        if(arr[i][j]>num){
                            continue;
                        }else if(arr[i][j]<num){
                            //i++;
                            break;
                        }else{
                            return true;
                        }
                    }
                }
                return false;
                
            }

!由于for循環(huán)的機(jī)制是 初始化-判斷-函數(shù)體-表達(dá)式-判斷-函數(shù)體-表達(dá)式。。。由于表達(dá)式中已經(jīng)含有j--和i++所以在函數(shù)體中break和continue之后不需要在做j--和i++的運(yùn)算,如果運(yùn)算就重復(fù)了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,638評(píng)論 18 399
  • 劍指 offer 在一個(gè)二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成...
    faremax閱讀 2,313評(píng)論 0 7
  • 今天主講零班新成員許小言。
    李思丞閱讀 433評(píng)論 0 2
  • 只是,想起來的時(shí)候,已經(jīng)不聯(lián)絡(luò)很久很久,久到只剩下好久沒有聯(lián)系的聯(lián)系方式。 “看完一部電影,突然好想你們”,莫名其...
    醒目路飛閱讀 473評(píng)論 0 3
  • 聆聽是這段遠(yuǎn)途中我唯一能做好的, 雖然偶爾我也不忘吐槽一番。 交流是需要時(shí)刻走心的,因?yàn)槲叶?但選擇有時(shí)卻成了恐...
    一葉一葡撻閱讀 193評(píng)論 0 1

友情鏈接更多精彩內(nèi)容