2018春招-今日頭條筆試題5題(后附大佬答案-c++版)


1題目描述

在n個元素的數組中,找到差值為k的除重后的數字對

輸入描述

第一行:n和k,n表示數字的個數,k表示差值

第二行:n個整數

輸入樣例

         輸入:

                  5 2

                  1 5 3 4 2

         輸出:

                  3

         說明:

                  (1,3),(5,3),(4,2)

         輸入:

                  6 2

                  1 5 3 3 4 2

         輸出:

                  3

         說明:

                  (1,3),(5,3),(4,2)

         輸入:

                  4 0

                  1 1 1 1

         輸出:

                  1

         說明:

                  (1,1)

第一題python實現

2題目描述

定義兩個字符串變量:s和m,再定義兩個操作:

第一種操作:m=s         s=s+s

第二種操作:s=s+m

假設s和m,初始如下:

s='a'         m=s

求最小步驟數,可以將s拼接到長度等於n

輸入描述

一個整數n,表明我們需要得到s字符串長度,0<n<1000

輸出描述

一個整數,表明總共操作次數

輸入樣例:

         輸入

         6

         輸出

         3

         說明:

         輸入是6,表明我們需要得到s字符串長度為6,也就是s為最終為‘aaaaaa’,那么依次使用2次“第一種操作”和1次“第二種操作”就能達到目的,總共操作次數是3

         輸入

         5

         輸出

         4

         說明:

         輸入是5,表明我們需要得到s字符串長度為5,也就是‘aaaaa’,那么直接使用4次“第二種操作”就能達到目的,總共操作次數是4

第二題python實現

3題目描述

如下用‘6’拼出0123456789,其中用.. 隔開每個數字

輸入描述

第一行為一個整數n

接下來n行,每行為一個表達式

表達式長度不超過100,1<=n<=100,表達式中僅僅包含'+'、' - '、'*'、' /'四中字符串,中間結果在[-2^63,2^63-1]范圍內,最總結果在[0, 2^63-1]范圍內

輸入樣例:

         輸入

         2

         6+6

         6*6

         輸出

  

第三題python實現

4題目描述

給定一個包含整數的集合a和一個集合b。定義magic操作,從一個集合中去除一個數,放到一個集合里,且操作過后每個集合的平均值都大於操作前。

注意以下兩點:

①不可以把一個集合的元素都取空,這樣就沒有平均值了

②值為x的元素從集合b中取出放入集合a,但集合a中已經有值為x的元素,則a的平均值不變(因為集合元素不會重復),b的平均值可能會改變(因為x被取出)

問最多可以進行多少次magic操作?

輸入描述

第一行為兩個整數n,m

第二行n個整數,表示集合a中的元素

第三行m個集合,表示集合b中的元素

輸出描述

輸出一個整數,表示最多可以進行的操作次數

輸入樣例

        輸入

        3 5

        1 2 5

        2 3 4 5 6

        輸出

        2

        說明

        依存從b集合取出3、4元素放入集合

第四題python實現

5題目描述

小T最近迷上了一款跳板游戲

已知空中有N個高度互不相同的跳板,小T剛開始在高度為0的地方,每次跳躍可以選擇與自己當前高度絕對值差小於等於H的挑板,跳躍過后到達以跳板為軸的鏡像位置,問小T在最多條K次的情況下能跳多高?(任意時刻,高度不能為負)

輸入描述

第一行三個整數 N,K,H

以下N行,每行一個整數Ti,表示第i個跳板離地的高度

輸出描述

一個整數,表示最高能跳到的高度

輸入樣例

        輸入

        3 3 2

        1

        3

        6

        輸出

        8

        說明

        小T初始在高度0的地方

        第一次跳躍只能選擇高度為1的跳板,結束后到達高度為2的地方,計算方式:

        高度1=初始高度+(跳板高度-初始高度)*2=0+(1-0)*2=2

        第二次跳躍只能選擇高度為3的跳板,結束后達到高度為4的地方,計算方式:

        高度2=高度1+(跳板2高度-高度1)*2=2+(3-2)*2=4

        第二次跳躍只能選擇高度為6的跳板,結束后達到高度為8的地方,計算方式:

        高度3=高度2+(跳板3高度-高度2)*2=4+(6-4)*2=8

 大佬的答案(c++):https://www.nowcoder.com/discuss/70299?type=0&order=0&pos=7&page=1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM