9 6 位元組跳動筆試

2022-08-10 16:45:11 字數 2213 閱讀 9233

大概題意

有個樓梯比較高,問有多少種可以方式可以走上去,但有特殊得要求:一是每次可以走一步或者兩步,二是不能連續的走兩步

計算有多少種方法到達頂層

輸入:樓層的層數

輸出:一共有多少種走法

思路:直接dp就好了,設dp方程為dp[i][2],dp[i][0]表示走一步之後達到第i層,那麼轉移方程就是dp[i][0]+=dp[i-1][0]+dp[i-1][1]

dp[i][1]表示走兩步之後達到第i層,那麼轉移方程就是dp[i][1]+=dp[i-2][0];

答案就是到達第n層的兩種狀態dp[n][0]+dp[n][1]

#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define rep_1(i,m,n) for(int i=m;i<=n;i++)

#define mem(st) memset(st,0,sizeof st)

inline int read()

while (isdigit(ch))

return w? -num: num;

}typedef long long ll;

typedef pairpii;

typedef unsigned long long ull;

typedef pairpdd;

const int inf = 0x3f3f3f3f;

const int n=2e6+10;

#define int long long

int dp[110][2];

void solve()

cout《題目大意

給定乙個長度為n的整數序列s,然後把序列複製成m份,也就是變成了n*m的序列,然後在這個新的序列中選取一段連續的整數,使得和最大。

和最大是多少?注意:序列中有負數或者0,至少選乙個數,不能不選

思路:首先如果m等於1時,此時此時就是在長度為n的陣列裡面選最大的連續欄位和,我們可以用dp來做

當m等於2的時候,也就是直接把陣列複製一遍接到後面,然後dp,n的範圍很小,dp完全足夠

然後當m>2的時候,就是我們找到最大子串之後,還要列舉我們的答案裡面要有幾個這樣的最大字串,當有兩個的時候,也就是可以看作乙個最大字串+乙個整串,然後列舉個數就好

需要注意的時,此題至少選乙個,那麼我們可以把ans設定為0,如果最大字串比0小的話,說明都是負數,我們就可以直接輸出乙個最大的負數就好了

具體看**

#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define rep_1(i,m,n) for(int i=m;i<=n;i++)

#define mem(st) memset(st,0,sizeof st)

inline int read()

while (isdigit(ch))

return w? -num: num;

}typedef long long ll;

typedef pairpii;

typedef unsigned long long ull;

typedef pairpdd;

const int inf = 0x3f3f3f3f;

const int n = 1e6 + 10;

#define int long long

int a[n] , dp[n];

void solve()

cout << ans << '\n' ;

return ;

} //如果m不是1,那麼,就找最大的子段

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

ma = max(ma , dp[i]);

//列舉中間有幾個連續的整段

for(int i=2; i<=m; i++)

ans = max(ans , sum * (i - 2) + ma);

//如果是0的話,說明都是負數

if(!ans)

cout << ans << '\n';

}signed main()

2019位元組跳動筆試題

第三題 有n個人參加程式設計比賽,比賽結束後每個人都得到乙個分數,現在所有人排成一圈 第乙個和第n個相鄰 領取獎品,要求 1.現在某個人的分數比左右的人告,那麼獎品數量也比左右的人多 2.每個人至少得到乙個獎品 問最少應該準備多少個獎品?測試用例 n組資料 每組陣列輸入n個人,n個人的分數 輸入 2...

位元組跳動筆試題

要求 輸入陣列長度,然後輸入陣列中的各個元素,最後輸入整數k,要求找出陣列中三個元素小於k的三個元素,例如 輸入陣列長度 6 輸入陣列元素 2 0 1 2 3 6 輸出三元組 共4個 下面給出思路和 思路 1 獲得使用者輸入的陣列長度n,若n不為整數,則提示錯誤。2 建立陣列。3 獲得使用者輸入的陣...

位元組跳動筆試面試經歷

一面是一位和藹的中年程式設計師。1.高階函式 一步一步引導我說出思路!最後面試結束後我查了乙個是乙個js術語。面試官對我說 因為你們學校學習和工作之間是有差距的,所以不會直接問你知識,我會給你一些線索看看你的思路 這個問題大概答出了大半題,大概是這樣。2.筆試經歷 讓我驚訝的是面試官還願意聽聽我筆試...