用友筆試0906
四道 Coding,難度偏低
1、問題抽象出來和 *********** 跳躍游戲一樣,貪心維護(hù)最右邊界
2、類似于 *********** 三數(shù)之和,只不過這道題按索引組合,并且允許重復(fù)選取,雙指針
3、點(diǎn)石成金
對(duì)于一個(gè) n*m 的房間,每次在地面上選擇一個(gè)點(diǎn),地面會(huì)以這個(gè)點(diǎn)為中心,以正方形擴(kuò)散變成金子,直到遇到墻壁或者已經(jīng)變成金子的地面時(shí),擴(kuò)散停止,問最少需要多少次,可以使整個(gè)房間的地面都變成金子
輸入兩個(gè)數(shù) n 和 m,輸出最少次數(shù)
測(cè)試用例
輸入 3,2
輸出 3
說明:先點(diǎn) 2*2,再點(diǎn) 1*1,再點(diǎn) 1*1
輸入 8,5
輸出 5
說明:先點(diǎn) 5*5,再點(diǎn) 3*3,再點(diǎn) 2*2,再點(diǎn) 1*1,再點(diǎn) 1*1
下面代碼只能過 70%,搞不清楚為什么,求大佬幫忙看看
public class Test { static int cnt = 0; public static void main(String[] args) throws ClassNotFoundException { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); dfs(n, m); System.out.println(cnt); } private static void dfs(int n, int m) { if(n == m) { cnt++; return; } int l = Math.max(n, m); int w = Math.min(n, m); cnt++; dfs(w, l - w); } }
4、暴力回溯