開發崗位筆試題(4月5日)
第一題:
題解:
貪心算法,題解參考
1 package testTecent; 2 3 import java.util.Arrays; 4 import java.util.Scanner; 5 6 public class test1 { 7 public static void main(String[] args) { 8 Scanner in = new Scanner(System.in); 9 while (in.hasNextInt()) { 10 // 先讀入一個整數n,再接着讀入n個整數存入數組 11 int sum = 0; 12 int ans = 0; 13 int i; 14 15 int m = in.nextInt(); 16 int n = in.nextInt(); 17 int[] arr = new int[n]; 18 for (i = 0; i < n; i++) 19 arr[i] = in.nextInt(); 20 21 Arrays.sort(arr); 22 if (arr[0] != 1) { 23 System.out.println(-1); 24 return; 25 } 26 while (true) { 27 if (sum >= m) { 28 System.out.println(ans); 29 return; 30 } 31 32 for (i = n-1; i >= 0; i--) { 33 if (arr[i] <= sum + 1) { 34 sum += arr[i]; 35 ans++; 36 break; 37 } 38 } 39 } 40 } 41 } 42 }
第二題:
題解:
只需要統計0的個數和1的個數,兩者作差即可。因為到最后不可能同時剩下0和1,只能剩下兩者中的一個。
第三題:
算法崗位筆試題:
第一題:
第二題:
第三題: