網易演算法崗2018秋招兩道筆試題

2021-08-25 05:25:21 字數 1571 閱讀 7157

1./*小易立方體:每次操作從某塔上取下一塊立方體放到lingyige塔上;其中最高的塔減去最低的塔為不穩定值

輸入:n,k分別為塔數和最大操作次數;

輸出:不穩定值,操作次數

每次操作的塔位置

分析:對每次操作暴力遍歷最大值和最小值;最大值+1,最小值-1;

邊界條件:直至操作次數num=k或者不穩定值為0或1;*/

#include "stdafx.h"

#include

#include

#include

#include

using

namespace

std;

int main()

for (int i = 0; i < k; i++)

//不穩定值已最小

if ((a[max] - a[min] == 0) || (a[max] - a[min] == 1))

break;

}a[max]--;

a[min]++;

countk.push_back(max);

countk.push_back(min);

}cout

<< a[max] - a[min] << ' '

<< num << endl;

for (int x = 0; x < num; x++)

}

2./題目描述:對n個a,m個z組成的字串全排列,輸出第k個字串/

分析:主要考察字串全排列(小點:字元與串的轉換,字串排序等)

#include "stdafx.h"

#include

#include

#include

#include

#include

using

namespace

std;

/*1.n個元素的全排列 = (n-1)個元素的全排列 + 另乙個元素作為字首

2.如果只有乙個元素,那麼這個元素本身就是它的全排列

3.不斷將每個元素放作第乙個元素,然後將這個元素作為字首,

並將其餘元素繼續全排列,等到出口,出口出去後還需要還原陣列*/

void pailie(set

& ss, int num, vector

chars)

else

ss.insert(tmpss);

tmpss.clear();

pailie(ss, num - 1, chars);}}

}int main()

for (int j = 0; j < m; j++)

//插入初始字串,char-》string

for (auto it = chars.begin(); it != chars.end(); ++it)

ss.insert(tmpss);

pailie(ss, n+m, chars);

for (auto it = ss.begin(); it != ss.end(); it++)

}}

比較函式的定義:

筆試題 網易2018秋招內推筆試

問題描述 小易有乙個長度為n的整數序列,a 1,a n。然後考慮在乙個空序列b上進行n次以下操作 1 將a i放入b序列的末尾 2 逆置b序列 小易需要你計算輸出操作n次之後的b序列。輸入描述 輸入包括兩行,第一行包括乙個整數n 2 n 2 10 5 即序列的長度。第二行包括n個整數a i 1 a ...

網易2018秋招筆試題之合唱

小q和牛博士合唱一首歌曲,這首歌曲由n個音調組成,每個音調由乙個正整數表示。對於每個音調要麼由小q演唱要麼由牛博士演唱,對於一系列音調演唱的難度等於所有相鄰音調製化幅度之和,例如乙個音調序列是8,8,13,12,那麼它的難度等於 8 8 13 8 12 13 6 其中 表示絕對值 現在要對把這n個音...

求教兩道演算法筆試題

最近在找工作,有把題目直接發到郵箱裡的,本人水平有限,貼出來大家幫忙看下!1 設計乙個遍歷演算法,按照方格的標號進行順序遍歷,要求一次遍歷完成所有標號方格的順序遍歷 114 2731 3539 6372 8186 9196 98100 102104 159168215 2832 3640 6473 ...