網易內推實習生面試

2022-07-02 04:09:13 字數 3448 閱讀 5485

以下題目的解法均是他人解法,並非本人貢獻

[程式設計題]數列還原

牛牛的作業薄上有乙個長度為 n 的排列 a,這個排列包含了從1到n的n個數,但是因為一些原因,其中有一些位置(不超過 10 個)看不清了,但是牛牛記得這個數列順序對的數量是 k,順序對是指滿足 i < j 且 a[i] < a[j] 的對數,請幫助牛牛計算出,符合這個要求的合法排列的數目。

輸入描述:

每個輸入包含乙個測試用例。每個測試用例的第一行包含兩個整數 n 和 k(1 <= n <= 100, 0 <= k <= 1000000000),接下來的 1 行,包含 n 個數字表示排列 a,其中等於0的項表示看不清的位置(不超過 10 個)。

輸出描述:

輸出一行表示合法的排列數目。

輸入例子:

5 5

4 0 0 2 0

輸出例子:

2

#include#include

using

namespace

std;

bool find(vector v,int n) //

查詢v中是否存在整數n

vector

int>> pv; //

全域性變數

void perm(vector &v,int st) //

對v中的數字進行全排列

}} void change(vector &v,vector subv,vector vpos)//

將v中的0用全排之後的數字分別代替

int cal(vector v) //

計算順序對的個數

intmain()

for(int i = 0;ii)

if(v[i]==0

) vpos.push_back(i);

//記錄下vector中0的位置

for(int i = 1;i<=n;++i)

if(!find(v,i))

subv.push_back(i);

perm(subv,0);

vector

vcnt;

for(int i = 0;ii)

int vcntk = 0

;

for(int i = 0;ii)

if(vcnt[i]==k)

++vcntk;

cout

}return0;

}

以下是我自己寫了一遍的**

#include#include

#include

using

namespace

std;

void getburpos(const vector &arr, vector &bur, vector &pos);

void per(vector& bur, int

index);

void swap(int &a1, int &a2);

int getres(vector arr, vector pos, int n, int

k);vector

int>>arrper;

intmain()

vector

bur, pos;

getburpos(arr, bur, pos);

per(bur, 0);

int res =getres(arr, pos, n, k);

cout

<< res <}

return0;

}void getburpos(const vector &arr, vector &bur, vector &pos)

for (int i = 1; i<=arr.size(); i++)

return;}

void per(vector&bur, int

index)

for (int i = index; i)

return;}

void swap(int &a1, int &a2)

int getres(vector arr, vector pos, int n, int

k)

int cnt = 0

;

for (int j = 0; j)

for (int k = j + 1; k)

if (cnt ==k)

res++;

}return

res;

}

[程式設計題]合唱團

有 n 個學生站成一排,每個學生有乙個能力值,牛牛想從這 n 個學生中按照順序選取 k 名學生,要求相鄰兩個學生的位置編號的差不超過 d,使得這 k 個學生的能力值的乘積最大,你能返回最大的乘積嗎?

輸入描述:

每個輸入包含 1 個測試用例。每個測試資料的第一行包含乙個整數 n (1 <= n <= 50),表示學生的個數,接下來的一行,包含 n 個整數,按順序表示每個學生的能力值 a
i
(-50 <= ai <= 50)。接下來的一行包含兩個整數,k 和 d (1 <= k <= 10, 1 <= d <= 50)。

輸出描述:

輸出一行表示最大的乘積。

輸入例子:

3

7 4 7

2 50

輸出例子:

49

f [ i ] [ j ] [ 最大 / 最小 ]

分別表示,以第i個人為最後乙個(也是必選的)人,加上這個人,已經選了 j 個人,最大可能的乘積和最小可能的乘積。

#include #include 

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;

int a[55

];ll f[

55][15][2];

intmain()

scanf(

"%d%d

",&kk,&d);

ll ans=0

;

for(int i=1;i<=n;i++)

}ans=max(ans,max(f[i][kk][0],f[i][kk][1

]));

}printf(

"%lld\n

",ans);

return0;

}

2017騰訊內推實習生面試經歷 已獲得offer

1 select,poll,epoll的區別 2 程序通訊的ipc種類 3 有名管道和無名管道的區別 4 程序和執行緒的區別 5 執行緒的私有棧空間 6 簡述tcp通訊中服務端和客戶端的api 7 tcp中的三路握手 8 c語言中的static修飾符 9 程序間如何傳遞檔案描述符 10 程序的虛擬位...

2017騰訊內推實習生面試經歷 已獲得offer

1 select,poll,epoll的區別 2 程序通訊的ipc種類 3 有名管道和無名管道的區別 4 程序和執行緒的區別 5 執行緒的私有棧空間 6 簡述tcp通訊中服務端和客戶端的api 7 tcp中的三路握手 8 c語言中的static修飾符 9 程序間如何傳遞檔案描述符 10 程序的虛擬位...

求職經歷 網易遊戲實習生面試體驗

如果你大學裡有想過從事遊戲開發的話,你對網易遊戲肯定不會陌生,網易開發出過夢幻西遊,倩女幽魂這種端遊大作,可惜在頁遊和手遊方面現在依舊毫無建樹,網易遊戲的特點有以下幾個 關於學歷的事情強調下,下面是各個學校的錄取比例 哎。我怎麼說了好多網易遊戲的特點好像都是在誇網易遊戲啊,那再說下網易遊戲不太好的地...