拼多多筆試題(一):多多的魔術盒子
問題描述:
多多雞有N個魔術盒子(編號1~N),其中編號為i的盒子裡有i個球。
多多雞讓皮皮蝦每次選擇一個數字X(1 <= X <= N),多多雞就會把球數量大於等於X個的盒子裡的球減少X個。
通過觀察,皮皮蝦已經掌握了其中的奧祕,並且發現只要通過一定的操作順序,可以用最少的次數將所有盒子裡的球變沒。
那麼請問聰明的你,是否已經知道了應該如何操作呢?
輸入描述:
第一行,有1個整數T,表示測試用例的組數。 (1 <= T <= 100) 接下來T行,每行1個整數N,表示有N個魔術盒子。 (1 <= N <= 1,000,000,000)
輸出描述:
共T行,每行1個整數,表示要將所有盒子的球變沒,最少需要進行多少次操作。
輸入用例:
3 1 2 5
輸出用例:
1 2 3
思路分析:
首先想到的就是通過二分法來解決,每次取中間的數,後面的數字一次減x,再次尋找陣列起始點與中間數的中間值,直到陣列中間值等於a[0],就相當於求二分法的時間複雜度log(n)底數為2。然後通過分析,如果是2的整數倍,那麼a[n]還需要一步操作,如果不是2的整數倍也需要對a[0]進行減1操作。所以就是求 log(n)+1。看到有人通過求二進位制的長度解決這道題,道理一樣,求二級制也是不斷除以2,其長度就是除以2的次數加1
程式碼實現:
import java.util.Scanner;
public class MagicTool {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int[] a = new int[N];
for(int i=0;i< a.length;i++){
a[i]=scanner.nextInt();
a[i]= (int) (Math.log(a[i])/Math.log(2))+1;
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
相關文章
- 2018拼多多學霸批前端筆試題記錄前端筆試
- “遊戲公司”拼多多遊戲
- 拼多多API:拼多多獲得搜尋詞統計 APIAPI
- 拼多多買兩單免一單是真的嗎?拼多多免單操作步驟
- 拼多多商品詳情介面,拼多多百億補貼資料介面,拼多多優惠券介面程式碼教程
- 拼多多API介面:拼多多根據ID取商品詳情 APIAPI
- 拼多多API:拼多多根據關鍵詞取商品列表 APIAPI
- 陸奇加入拼多多,擔任技術委員會主席!
- 帶你領略拼多多2020校招筆試題,這樣的難度你可以搞定嗎?筆試
- 技術向上,雪坡向下:拼多多的“新帥”與新路
- 拼多多版http-serverHTTPServer
- 拼多多詳情api介面API
- 拼多多開發指南 [第一期]
- 拼多多API介面:拼多多APP根據ID取商品詳情原資料APIAPP
- SQL連續查詢問題擴充—記上海拼多多非技術崗面試真題SQL面試
- 面經合集(阿里、網易、拼多多)阿里
- 2024.08.25拼多多
- 自定義一個仿拼多多地址選擇器
- 從拼多多優惠券事件看到的一些反思事件
- 拼多多:2021年Q4拼多多營收272.3億元 同比增長3%營收
- 拼多多財報:2018年拼多多營收131.20億元 同比增長652%營收
- 弘遼科技:拼多多賣家該如何操作拼多多推廣中心?推廣收費嗎?
- 個人秋招面經合集(阿里、網易、拼多多)|掘金技術徵文阿里
- 致拼多多顧客的一封信——南塘菌
- 拼多多、酷家樂面試總結面試
- 拼多多商品詳情api呼叫示例API
- 拼多多財報:2019年拼多多營收301.4億元 同比增長130%營收
- 甩手工具箱:如何在拼多多開店?拼多多開店需要做那些準備呢?
- 拼多多財報:2022年Q3拼多多營收355億 同比增長65.1%營收
- 拼多多財報:2023年Q3拼多多營收688.4億元 同比增長93.9%營收
- 拼多多財報:2024年Q1拼多多營收868億元 同比大漲131%營收
- 拼多多面試經歷/注意HR給你挖坑!|掘金技術徵文面試
- BigDecimal 被拼多多的"砍一刀"應用到了極致Decimal
- 拼多多財報:2024年Q2拼多多總營收為970.595億元 同比增長86%營收
- 地攤:阿里、拼多多、京東們的新戰場阿里
- 從拼多多事件看電商的促銷模型事件模型
- 前有阿里蘇寧,後有拼多多國美阿里
- 阿里、京東、拼多多C2M博弈阿里