1. 程式人生 > >網易面試題記錄(題目來源-->牛客網)

網易面試題記錄(題目來源-->牛客網)

1.魔法幣:小易準備去魔法王國採購魔法神器,購買魔法神器需要使用魔法幣,但是小易現在一枚魔法幣都沒有,但是小易有兩臺魔法機器可以通過投入x(x可以為0)個魔法幣產生更多的魔法幣。
魔法機器1:如果投入x個魔法幣,魔法機器會將其變為2x+1個魔法幣
魔法機器2:如果投入x個魔法幣,魔法機器會將其變為2x+2個魔法幣
小易採購魔法神器總共需要n個魔法幣,所以小易只能通過兩臺魔法機器產生恰好n個魔法幣,小易需要你幫他設計一個投入方案使他最後恰好擁有n個魔法幣。
輸入描述:
輸入包括一行,包括一個正整數n(1 ≤ n ≤ 10^9),表示小易需要的魔法幣數量。

輸出描述:
輸出一個字串,每個字元表示該次小易選取投入的魔法機器。其中只包含字元’1’和’2’。

輸入例子1:
10

輸出例子1:
122

解題思路:給出n求x,即是一個倒推的過程,通過機器的方程可以知道機器1輸出奇數,機器2輸出偶數,所以倒推的時候考慮當前數字是奇數還是偶數即可,想到了這點寫法很簡單。
JavaScript解法:

function getMachine(n){
    var x = '';
    while(n){
        if(n%2===0){
            x='2'+x;
            n=(n-2)/2;
        }else{
            x='1'+x;
            n=(n-1)/2;
        }
    }
    return
x; } console.log(getMachine(Number(readline())));

2.相反數:為了得到一個數的”相反數”,我們將這個數的數字順序顛倒,然後再加上原先的數得到”相反數”。例如,為了得到1325的”相反數”,首先我們將該數的數字順序顛倒,我們得到5231,之後再加上原先的數,我們得到5231+1325=6556.如果顛倒之後的數字有字首零,字首零將會被忽略。例如n = 100, 顛倒之後是1.
輸入描述:
輸入包括一個整數n,(1 ≤ n ≤ 10^5)

輸出描述:
輸出一個整數,表示n的相反數

輸入例子1:
1325

輸出例子1:
6556

解題思路:這個題比較簡單,就是一個反轉的過程,而且他的字首0省略直接用Number(n)即可,不需要做更多處理。
JavaScript解法:

function getNumber(n){
    var m = String(n).split("").reverse().join("");
    return n+Number(m);
}
console.log(getNumber(Number(readline())));

3.字串碎片:一個由小寫字母組成的字串可以看成一些同一字母的最大碎片組成的。例如,”aaabbaaac”是由下面碎片組成的:’aaa’,’bb’,’c’。牛牛現在給定一個字串,請你幫助計算這個字串的所有碎片的平均長度是多少。

輸入描述:
輸入包括一個字串s,字串s的長度length(1 ≤ length ≤ 50),s只含小寫字母(‘a’-‘z’)

輸出描述:
輸出一個整數,表示所有碎片的平均長度,四捨五入保留兩位小數。

如樣例所示: s = “aaabbaaac”
所有碎片的平均長度 = (3 + 2 + 3 + 1) / 4 = 2.25

輸入例子1:
aaabbaaac

輸出例子1:
2.25

解題思路:第一反應是用正則表示式,後來才發現想複雜了,所謂的平均長度就是總長/出現字元種類(不在一起的就不是一類)
JavaScript解法:

function getLength(n){
    var count = 1;
    for(var i=1;i<n.length;i++){
        if(n[i]!==n[i-1]){
            count++;
        }
    }
    return (n.length/count).toFixed(2);
}
console.log(getLength(readline()));

4.遊歷魔法王國:魔法王國一共有n個城市,編號為0~n-1號,n個城市之間的道路連線起來恰好構成一棵樹。
小易現在在0號城市,每次行動小易會從當前所在的城市走到與其相鄰的一個城市,小易最多能行動L次。
如果小易到達過某個城市就視為小易遊歷過這個城市了,小易現在要制定好的旅遊計劃使他能遊歷最多的城市,請你幫他計算一下他最多能遊歷過多少個城市(注意0號城市已經遊歷了,遊歷過的城市不重複計算)。
輸入描述:
輸入包括兩行,第一行包括兩個正整數n(2 ≤ n ≤ 50)和L(1 ≤ L ≤ 100),表示城市個數和小易能行動的次數。
第二行包括n-1個整數parent[i](0 ≤ parent[i] ≤ i), 對於每個合法的i(0 ≤ i ≤ n - 2),在(i+1)號城市和parent[i]間有一條道路連線。

輸出描述:
輸出一個整數,表示小易最多能遊歷的城市數量。

輸入例子1:
5 2
0 1 2 3

輸出例子1:
3

em…這題沒弄出來

5.重排數列:小易有一個長度為N的正整數數列A = {A[1], A[2], A[3]…, A[N]}。
牛博士給小易出了一個難題:
對數列A進行重新排列,使數列A滿足所有的A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是4的倍數。
小易現在需要判斷一個數列是否可以重排之後滿足牛博士的要求。
輸入描述:
輸入的第一行為數列的個數t(1 ≤ t ≤ 10),
接下來每兩行描述一個數列A,第一行為數列長度n(1 ≤ n ≤ 10^5)
第二行為n個正整數A[i](1 ≤ A[i] ≤ 10^9)

輸出描述:
對於每個數列輸出一行表示是否可以滿足牛博士要求,如果可以輸出Yes,否則輸出No。

輸入例子1:
2
3
1 10 100
4
1 2 3 4

輸出例子1:
Yes
No

解題思路:這是個乍一看很難的題,不過多想一想就發現其實並不難,兩個數相乘能除盡4,要麼其中一個是4的倍數,要麼兩個都是2的倍數,然後統計這些數的總數,再和總長度進行對比判斷即可。
JavaScript解法:

function getBool(n,arr){
    var count = 0.0;
    for(var i in arr){
        if(arr[i]%4===0){
            count++;
        }else if(arr[i]%2===0){
            count+=0.5;
        }
    };
    if(n<=(2*Math.floor(count)+1)){
        return "Yes";
    }else{
        return "No";
    }
}
var p = Number(readline());
while(p--){
    var a = Number(readline());
    var b = readline().split(" ");
    console.log(getBool(a,b))
}

em…時間到了,剩下的題慢慢研究了

相關推薦

試題記錄題目來源-->

1.魔法幣:小易準備去魔法王國採購魔法神器,購買魔法神器需要使用魔法幣,但是小易現在一枚魔法幣都沒有,但是小易有兩臺魔法機器可以通過投入x(x可以為0)個魔法幣產生更多的魔法幣。 魔法機器1:如果投入x個魔法幣,魔法機器會將其變為2x+1個魔法幣 魔法機器2

網易面試題牛牛的作業薄上有一個長度為 n 的排列 A,這個排列包含了從1到n的n個數,但是因為一些原因, * 其中有一些位置不超過 10 個看不清了,但是牛牛記得這個數列順序對的數量是 k,

package wangyi; /** * Created by Administrator on 2016/12/7. * 牛牛的作業薄上有一個長度為 n 的排列 A,這個排列包含了從1到n的n個數,但是因為一些原因, * 其中有一些位置(不超過 10 個)看不清

試題社招

時間:2013年9月18日 地點:網易大廈門戶事業部 先是筆試題,1小時 一、演算法程式設計 1、f(0)=0;f(1)=1; f(n)=f(n-1)+f(n-2) 求f(n) 2、有主字串A,子字串B,在A中查詢B 3、寫出你熟悉的排序演算法,並說明其優缺點 二、Mysq

一道試題

一、題目描述   題目來自網上一個部落格,具體類似如下    @interface ViewController () @property (nonatomic, strong) NSString *target; @end @implementation ViewController -

試題,最大奇約數

題意: 小易是一個數論愛好者,並且對於一個數的奇數約數十分感興趣。一天小易遇到這樣一個問題: 定義函式f(x)為x最大的奇數約數,x為正整數。 例如:f(44) = 11. 現在給出一個N,需要求出 f(1) + f(2) + f(3)…f(N) 例如: N = 7 f(1) + f(2

試題想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準備多少種不同的材料。

package wangyi; /** * Created by Administrator on 2016/12/7. * 牛牛想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理

試題——趕去公司

題目: 終於到週末啦!小易走在市區的街道上準備找朋友聚會,突然伺服器發來警報,小易需要立即回公司修復這個緊急bug。假設市區是一個無限大的區域,每條街道假設座標是(X,Y),小易當前在(0,0)街道,辦公室在(gx,gy)街道上。小易周圍有多個計程車打車點,小易趕去辦公

自己實戰整理試題--Mysql帶答案,不斷更新

mysql目前用的版本? 5.1.21;目前最高5.7.* left join,right join,inner join? left join(左連線) 返回包括左表中的所有記錄和右表中連線欄位相等的記錄  right join(右連線) 返回包括右表中的所有記錄和左

自己實戰整理試題--鎖帶答案,不斷更新

java有哪些鎖? Synchronized 和 ReentrantLock? 1、synchronized是重量級鎖? 從JDK 1.5 到 JDK 1.6 有一個高效併發方面的重要改進,HotSpot虛擬機器開發團隊在這個版本中花費了很大的精力去對Java中的鎖進行優化(synchr

自己實戰整理試題--JVM帶答案,不斷更新

jvm記憶體模型,java記憶體模型,GC機制和原理; 物件是否可 GC? GC分哪兩種,Minor GC 和Full GC有什麼區別?什麼時候會觸發Full GC?分別採用什麼演算法? 垃圾回收演算法 垃圾回收器 G1 常見的JVM調優方法有哪些?可以具體到調整哪個引數,調成什麼值? JVM虛

自己實戰整理試題--集合帶答案,不斷更新

Set 和 List 區別? ArrayList 和 LinkedList 區別? 如果存取相同的資料,ArrayList 和 LinkedList 誰佔用空間更大? List 和 Map 區別,Arraylist 與 LinkedList 區別,ArrayList 與 Vector 區別? S

自己實戰整理試題--Redis帶答案,不斷更新

Redis應用場景? 分散式鎖:通過setnx/del命令來實現,不完美的是由於業務場景比較多,所以,有些瑕疵,比如:setnx/del命令是非原子性的,存在執行完setnx但是沒有執行del的情況,導致鎖無法釋放,針對這種情況Redis的團隊加入了一些引數特性,給鎖加上過期時間,我的理解時

自己實戰整理試題--Spring帶答案,不斷更新

Spring 的原理? Spring的核心主要是IOC和AOP;從Spring簡單的來說,是通過對POJO開發的支援,來具體實現的;Spring通過為應用開發提供基於POJO的開發模式,把應用開發和複雜的Java EE服務,實現解耦,並通過提高單元測試的覆蓋率,從而有效的提

仿新聞的頁面ViewPager作為RecyclerView的Header

需求 > 想實現一個仿網易新聞的頁面,上面是輪播的圖片,下面是 RecyclerView 顯示新聞列表。 錯誤方法 <?xml version="1.0" encoding="utf-8"?> <LinearLayout

Android-BAT試題整理java篇,含答案

結尾: 如果你是正在找工作,3分理解7分背,先把offer搞下來再說,知識點太多,全部搞懂不太實際。 如果你還在職,正在物色你喜歡的公司,7分理解3分背,掌握基礎鞏固知識,針對你想進的公司,想進的部門的內容去學習,因為時間比較充裕。 不過無論如何請記住,理解才是王道,所有高深的技術點都是基於基礎知識去延伸的,

歷年阿里試題彙總2017年不斷更新中

Volatile的特徵: A、禁止指令重排(有例外) B、可見性 Volatile的記憶體語義: 當寫一個volatile變數時,JMM會把執行緒對應的本地記憶體中的共享變數值重新整理到主記憶體。 當讀一個volatile變數時,JMM會把執行緒對

JDBC學習記錄傳智播視訊

1、概念JDBC:java Data Base Connectivity ,即java資料庫連結JDBC是一套API,也就是sun公司定義的類或者介面。而驅動是資料庫公司定義的類庫,實現了sun公司規定的介面。2、JDBC開發步驟a、註冊驅動:告知JVM使用的是哪一個資料庫的

C++中的set用法附加:

給6個火柴棍,問能不能拼成“熊”或者“象” “熊”:4根棍子長度一樣,另外2根棍子長度不一樣 “象”:4根棍子長度一樣,另外2根棍子長度一樣。 如果可以拼出熊,輸出“Bear” 如果可以拼出象,輸出“Elephant” 如果都不可以拼出,輸出“Hernia

瞌睡 試題

題目描述 小易覺得高數課太無聊了,決定睡覺。不過他對課上的一些內容挺感興趣,所以希望你在老師講到有趣的部分的時候叫醒他一下。你知道了小易對一堂課每分鐘知識點的感興趣程度,並以分數量化,以及他在這堂課上每分鐘是否會睡著,你可以叫醒他一次,這會使得他在接下來的k分鐘內保持清醒

2019遊戲測試工程師暑期實習經---已成功拿到offer

其實這次面試經歷告訴了我一個道理,放平心態,不能太心急,往往事情會向好的地方發展個人定位:廣州某211非計算機專業研究生一枚,目前正在做一個專案並且還和遊戲測試不沾邊的(網傳網易只收985和海外港澳高校不屬實),並且聽說也有雙非得同學成功拿到offer。先說線上筆試吧,其實筆