字节跳动面试算法题
1. 實現(xiàn)一個字符串轉(zhuǎn)換整數(shù)的函數(shù);
2. 輸入兩個遞增排序的鏈表,合并這兩個鏈表并使新鏈表中的結(jié)點仍然是按照遞增排序的,例如:
鏈表1:1 -> 3 -> 5 -> 7
鏈表2: 2 -> 4 -> 6 -> 8
合并后的鏈表3:
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8
鏈表定義:
struct ListNode
{
?? ?int ? ? ? m_nValuel
?? ?ListNode* m_pNext;?? ?
};
3. 輸入n個整數(shù),找出其中最小的 k 個數(shù)目,例如輸入4、5、1、6、2、7、3、8,則最小的4個數(shù)字是1、2、3、4。
4. 輸入兩個鏈表,找出它們的第一個公共結(jié)點,鏈表結(jié)點定義如下:
struct ListNode
{
?? ?int ? ? ? m_nKey;
?? ?ListNode* m_pNext;?? ?
};
5. TCP的滑動窗口機制知道嗎?設(shè)計一個可行的滑動窗口的算法。
6. 中國象棋中,假設(shè)左下角的位置為坐標(biāo)原點,某棋子馬的坐標(biāo)是(x, y),另外一個棋子的坐標(biāo)為(m, n),實現(xiàn)一個函數(shù)返回馬下一步可走的位置坐標(biāo)。
7. 實現(xiàn)一個緩沖區(qū)類,需要支持以下功能:
(1). 緩沖區(qū)內(nèi)存要求連續(xù)
(2). 支持擴容
(3). 支持讀和寫
8. 實現(xiàn)一個 LRU 算法。
9. 假設(shè)有一個鏈表,實現(xiàn)一個算法將其對折,例如對于鏈表:
1->2->3->4->5->6->7->8
對折之后變?yōu)?#xff1a;
1->8->2->7->3->6->4->5。
總結(jié)
- 上一篇: MySQL防止重复插入唯一限制的数据 4
- 下一篇: 字节跳动高频算法题TOP100