小q擁有乙個只儲存了整數的序列叫做魔法序列。一開始序列為空,小q會執行以下兩種操作:
add(x):表示往系列中新增乙個值為x的整數。(add陣列表示每次往陣列中新增的數字)
get(y):表示在第y次add操作後,取出序列中第k小的數,並將其輸出。其中k初始時候為1,每執行一次get操作之後,k的值會+1。(get陣列中第i個數表示在執行了get(i)次add操作後,執行一次get操作)
const add =[3
,1,-
4,2,
8,-1000,2
];const
get=[1
,2,6
,6];
const
main
=(input, output)
=>
} console.
log(result);}
;const
helper
=(a, array)
=>
return start;};
main
(add,
get)
;
答題當時的思路非常差,企圖在每次get()執行時進行sort()排序,這是乙個非常餿的主意,強行增加複雜度。當前思路是add()執行的時候一直維護乙個有序的陣列,通過二分查詢,找到插入資料的位置,方便在get()時選擇第k小的數字。 2019騰訊c 後台提前批筆試題
五個演算法題。第一題 有n種硬幣,面額分別為1 n,每種硬幣都有無限個,假設要付款的金額為m。要求支付硬幣數最少。為多少?答 m n m n 很簡單的乙個題 第二題 乙個數列 1 2 3 4 5 6 詢問q次,每次詢問區間 l,r 的區間和,輸出每個詢問的答案.答 第1個和第2個加起來為1,第3,4...
騰訊2019提前批筆試 硬幣題解
演算法描述 牛家村的貨幣是一種很神奇的連續貨幣.他們貨幣的最大面額是n,並且一共有面額為1,面額為2,面額為n,n種面額的貨幣.牛牛每次購買商品都會帶上所有面額的貨幣,支付時會選擇給出數量最小的方案.現在告訴你牛牛將要購買的商品的 你能算出牛牛支付的硬幣數量嗎?第一行兩個整數n,m.表示貨幣的最大面...
騰訊提前批筆試題 1 圓桌會議
有n個人圍坐在乙個圓桌周圍進行一場圓桌會議。會議開始前從第s個人開始報數,數到第m的人就出列退出會議,然後從出列的下乙個人重新開始報數,數到第m的人又出列,如此重複直到所有人全部出列為止。現在希望你能夠求出按退出會議次序得到的人員的序號序列。輸入描述 三個正整數n,s,m,均小於10000。輸出描述...