2019招商银行信用卡中心秋招IT笔试编程题总结
2019招商銀行信用卡中心秋招IT筆試編程題總結
1.給定一個字符串來代表一個員工的考勤紀錄,這個紀錄僅包含以下兩個字符:
 ‘A’ : Absent,缺勤
 ‘P’ : Present,到場
 如果一個員工的考勤紀錄中不超過兩個’A’(缺勤),那么這個員工會被獎賞。
 如果你作為一個員工,想在連續N天的考勤周期中獲得獎賞,請問有多少種考勤的組合能夠滿足要求
解答:
 該題其實就是組合問題,可以歸結為下面的公式:
 
 代碼實現之:
2.一條包含字母 A-Z 的消息通過以下方式進行了編碼:
'A' -> 1 'B' -> 2 ... 'Z' -> 26給定一個只包含數字的非空字符串,請計算解碼方法的總數。
例如 輸入:“12” 輸出:2 解釋:“12”可以被解碼成‘A’,’B‘或者’L‘,故有兩種解碼方法這題又是一道動態規劃類的題目,思路如下:
當前位置的編碼方式需要根據前面的步驟來計算;
 舉例:
 1226
 當前位置:1 -->編碼方式: 1
 當前位置:2 -->編碼方式:1 2 ; 12
 當前位置:2 -->編碼方式:1 2 2 ;12 2 ;1 22
 當前位置:6 -->編碼方式:1 2 2 6 ; 12 2 6 ; 1 22 6 ; 1 2 26 ; 12 26
 規律總結:
 如果當前數字不是0,則判斷 它和前一位數字組合是否大于26,如果不大于26,則可以通過組合形式形成新的編碼方法,如果和前一位組合后大于26,則只能單獨出道;可以看出,如果可以組合,則是在dp[i-2] 的基礎上進行組合,如果不能組合即單獨出道,即在dp[i-1] 的基礎上單獨出道,如果又能單獨出道又能組合,則dp[i] = dp[i-1] + dp[i-2]
3.公司組織團建活動,到某漂流圣地漂流,現有如下情況:
 員工各自體重不一,第 i 個人的體重為 people[i],每艘漂流船可以承載的最大重量為 limit。
 每艘船最多可同時載兩人,但條件是這些人的重量之和最多為 limit。
 為節省開支,麻煩幫忙計算出載到每一個人所需的最小船只數(保證每個人都能被船載)。
輸入描述:
第一行輸入參與漂流的人員對應的體重數組, 第二行輸入漂流船承載的最大重量輸出描述:
所需最小船只數本題采用貪心算法
package Day53;import java.util.Arrays; import java.util.Scanner;/*** @Author Zhongger* @Description 載到每一個人所需的最小船只數* @Date 2020.3.27*/ public class Main3 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();//人的體重String[] people = s.split(",");int[] peopleArr = new int[people.length];for (int i = 0; i < people.length; i++) {peopleArr[i]=Integer.parseInt(people[i]);}int limit=scanner.nextInt();System.out.println(getMinNums(peopleArr, limit));}public static int getMinNums(int[] people,int limit){Arrays.sort(people);//將人的體重從小到大排序int left=0;//左指針int right=people.length-1;//右指針int res=0;//需要的船數while (left<right){if (people[left]+people[right]<=limit){//體重最輕+最重的可以上船left++;right--;}else {//體重最重的上船right--;}res++;//船數加一}if (left==right){//只剩下最后一個人了,那就再派一艘船來載res++;}return res;} }總結
以上是生活随笔為你收集整理的2019招商银行信用卡中心秋招IT笔试编程题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: IRP IO_STACK_LOCATIO
- 下一篇: 【Angular】Angular使用HT
