在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
對於左上角的元素
array[i][j] (其中
i=0; j=array[0].length),它下方的數值都比它大(就是說它所在列中是最大的),它左方的數值都比它小(就是說它所在行是最大的)。
首先將目標整數與左上角的元素對比,如果相等,那麼它就是答案; 如果
目標整數大於左上角的元素,那麼目標整數大於它一整行的數值,因此可以排除所在行,即i++; 如果
目標整數小於左上角的元素,那麼目標整數小於它一整列的數值,因此可以排除所在列,即j--;
重複上述過程,直到i==array.length或者j==-1; 最後由於找不到相等的,返回false
public static boolean find(int target, int array)
// 定位左上角元素
int i=0;
int j=array[0].length - 1;
for(; i< array.length && j >= 0;) else if(target < array[i][j]) else if(target > array[i][j])
} return false;
}
第二週演算法作業
將數字轉化成字串,然後再轉化成列表,利用列表的反轉函式進行反轉,最後轉換回數字class solution object defreverse self,x type x int rtype int isneg false if x 0 isneg true x x reverse x list l...
演算法第二週作業04
乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。solutions 青蛙要想跳到target級台階,她可以從第0個台階直接 一次 跳到target級,或者從第1級台階直接跳到target級,或者直接從第target 1級台階直接跳到targ...
第二週作業
實驗作業 1.編寫調式執行第乙個c 程式,要求輸出你的班級 姓名和學號 2.輸入課本例題1.2,除錯執行程式,並分析程式。3.分析程式中哪些是識別符號,哪些是關鍵字。4.回答什麼是程式 工程,原始檔 目標檔案 執行檔案 編譯預處理 名字空間 函式.主函式 功能 顯示輸出班級 姓名 學號 includ...