2017-02-22 65 views
1

我有下面的方法獲取二維數組和值。該方法檢查值是否在數組中。我有下面的方法獲取二維數組和值。該方法檢查值是否在數組中

我不理解爲什麼需要的代碼,我以粗體突出顯示線(如果(M [I] [M [I]。長度-1] = < val)的

它看起來代碼工作沒有這條線,以及...爲什麼我還需要這條線,可以有人給我解釋一下好嗎?謝謝

public static boolean findValWhat (int[][] m, int val) 
{ 
    for (int i = 0; i < m.length; i++) { 
     **if (m[i][m[i].length-1] <= val){** 
      if (binarySearch(m[i], val) == val){ 
       return true; 
      } 
     } 
    } 

    return false; 

} 
+0

我想你會浪費一個額外的搜索電話,因爲你的二進制搜索功能不依賴於綁定,但仍受其影響。 –

回答

0

的代碼仍然沒有它的工作,但它makeing運行得更快。 可以說你有這個排序的二維數組: [[1,2,3],[4,5,6],[7,8,9]] 然後你可以看到,如果你正在尋找8,你不需要做二進制搜索的第一行,因爲3小於8,他是那裏最大的數字。 你甚至可以通過二進制搜索而不是循環來製作這段代碼。

相關問題