一、投遞信息
投遞時間:2020年2月28日
崗位:IT類(開發方向)
工作地點:上海
信息來源:招商銀行信用卡中心招聘公衆號
回覆時間:2020年4月27日
筆試時間:2020年4月29日9:00—11:00
筆試平臺:牛客網
二、筆試題
- 編程題1:金幣 ( 動態規劃)
小招在玩一款遊戲:在一個N層高的金字塔上,以金字塔頂爲第一層,第i層有i個落點,每個落點有若干枚金幣,在落點可以跳向左斜向下或向右斜向下的落點。若知道金字塔的層數N及每層的金幣數量分佈,請計算小招在本次遊戲中可以獲得的最多金幣數量。
輸入描述:
輸入共有N + 1行(N ≤ 1024),第一行爲高度N,第二行至N + 1行 ,爲該金字塔的金幣數量分佈。
輸出描述:
輸出金幣數量
示例1
輸入
5
8
3 8
8 1 0
4 7 5 4
3 5 2 6 5
輸出
31 - 編程題2:交換座位 AC
在一場集體婚禮上,有n對新人需要坐在連續排列的 2n個座位上合影,同一對新人彼此挨着。由於進場時各對新人並未按序入座,請計算最少交換座位的次數,以便使每對新人均可並肩坐在一起。一次交換可選擇任意兩人,讓他們互換座位。
全部新人的序號可用 0 到 2n-1 的整數表示,第一對是 (0, 1),第二對是 (2, 3),以此類推,最後一對是 (2n-2, 2n-1)。
row[i]指最初坐在第 i 個座位上的新人編號,i是從0到(2n-1)的一個升序全排列,row不存在重複值。
輸入描述:
輸入共有2行,第一行爲n,即共有多少對新人(2≤n≤100000 ),第二行爲row,即2n個座位上的初始新人編號。
輸出描述:
輸出最少交換座位的次數
示例1
輸入
2
0 2 1 3
輸出
1
說明
我們只需要交換1和2的位置即可
示例2
輸入
2
3 2 0 1
輸出
0
說明
無需交換座位,所有的新人都已經並肩坐在一起 - 編程題3:修塔遊戲
題目描述
小招正在玩一款修塔遊戲:系統中有n座高塔,每座高塔由若干個高度相同的方塊堆砌而成。修塔遊戲的規則爲:
(1)每次從最高塔的塔尖拿走一個方塊
(2)每次在最低塔的塔尖堆砌一個方塊
小招每次只能完成上述兩個動作中的一個動作。遊戲的目標是使n座高塔中至少有k座高塔的高度相同,請問小招最少需要多少次才能完成遊戲。
輸入描述:
輸入共有2行,第一行爲n和k(1≤k≤n≤200000 ),第二行爲n座塔的高度組成的數組 a1, a2, …an(1≤aj≤10000)。
輸出描述:
輸出值爲最少需要多少次動作才能完成遊戲。
示例1
輸入
6 5
1 2 2 4 2 3
輸出
3