頭條面試題

2021-09-29 06:47:48 字數 3362 閱讀 2640

極大似然的原理

svm 原理

l1和l2的區別,以及各自的使用場景

為什麼梯度是函式變化最快的方向

遞迴的去除字串中連續的 ac 和 b

#include #include #include using namespace std;

int main() ;

if (s.empty())

stackst;

int cursor = 0;

while(cursor < s.size()) else else if (st.top() == 'a' && ch == 'c') else }}

vectorch(st.size());

for (int i = st.size()-1; i >= 0; i--)

for (auto& e : ch)

return 0;

}

#include #include using namespace std;

int main() ;

int num;

ss >> num;

cout << num << endl;

return 0;

}

leetcode 2

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

if (l2)

p->next = new listnode(partsum%10);

p = p->next;

partsum /= 10;

}if (partsum != 0) p->next = new listnode(partsum);

return dummyhead.next;}};

leetcode98. validate binary search tree

中序遍歷樹, 檢視遍歷過程中是否是公升序

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution else

pre = cur;

p = st.top()->right;

st.pop();}}

return isvalid;

} };

根節點的值大於左子樹的最大值, 小於右子樹的最小值,

作為葉子節點來說, 以左葉子節點來說, 左葉子節點要

滿足父節點的約束;

小於其父節點的值;

class solution 

bool isvalidbst(treenode* root, long min_val, long max_val)

};

解法很經典, 好好揣摩.

/*

struct treenode

};*/

#include#includeusing namespace std;

class solution

// *& 很重要, 必須使用引用, 否則當前 pre 並沒有更新到最新位置

void converthelper(treenode* cur, treenode*& pre)

else

pre = cur;

converthelper(cur->right, pre);}};

/*

struct treenode

};*/

#include#includeusing namespace std;

class solution

treenode dummyhead(-1);

treenode *dp = &dummyhead;

treenode *p = prootoftree;

stackst;

while (p || !st.empty()) else

}dummyhead.right->left = nullptr;

return dummyhead.right;}};

用了同學的白金內推碼,所以直接進入了

面試,全程都在寫題!機器學習的問題非常少! 一面: 1、介紹專案 2、強化學習pg的推導 3、強化學習dqn,ddqn,ac,ddpg的區別 4、n個[0,n)的數,求每個數的出現次數(不能開闢額外空間) 5、k個有序陣列,找乙個長度最小的區間,在這個區間裡至少包含每個陣列各乙個數。 分析:初始化帶下為k的最小堆,k個數字是每個陣列中的最小值,設定變數max記錄k個數字中的最大值,刪除堆頂元素,將原堆頂元素對應的陣列中下乙個元素加入到堆中,調整堆,並且記錄當前區間範圍為(max-min),重複執行直到某個陣列所有值都被刪除。

二面1、介紹dqn的專案

2、陣列的全排列(空間複雜度o(1))

陣列中有重複元素,所以我們需要乙個set儲存已經出現過的排列。因此我先寫了乙個回溯的方法,可是空間複雜度比較高,面試官說能不能用o(1)的空間複雜度,全排列直接print出來就行。即我們不需要儲存已經出現過什麼排列。這需要對陣列先進性排序。

3、兩堆鈔票,盡可能均分(利用揹包問題的思想)

想了半天,寫出來乙個深度優先搜尋的演算法。面試官提示我可以考慮從揹包問題的角度出發,但最後也沒想出來。

三面:1、無向無環圖中,最短路徑的最大值(o(n^3)的解法)

這裡考察的其實就是floyd演算法。哎,只可惜自己當時沒有複習圖的相關演算法,完全不會寫呀。

演算法思想原理:floyd演算法是乙個經典的動態規劃演算法。用通俗的語言來描述的話,首先我們的目標是尋找從點i到點j的最短路徑。

從任意節點i到任意節點j的最短路徑不外乎2種可能,1是直接從i到j,2是從i經過若干個節點k到j。所以,我們假設dis(i,j)為節點u到節點v的最短路徑的距離,對於每乙個節點k,我們檢查dis(i,k) + dis(k,j) < dis(i,j)是否成立,如果成立,證明從i到k再到j的路徑比i直接到j的路徑短,我們便設定dis(i,j) = dis(i,k) + dis(k,j),這樣一來,當我們遍歷完所有節點k,dis(i,j)中記錄的便是i到j的最短路徑的距離。

2、lstm的公式

3、rnn為什麼出現梯度消失

4、bptt的推導。

頭條 msra幾道面試題

頭條 題目1,給定乙個無向圖,找兩個節點之間的最短距離,這個其實就是bfs就可以 題目2,給定100e長度的陣列,資料型別unsignedfloat64,你只有2g的記憶體,如何找出中位數。題目3,leetcode原題33.search in rotated sorted array。解決迴圈陣列的...

今日頭條面試題 基礎練習

都是基礎題目,也起來也挺繞的 作為乙個手串藝人,有金主向你訂購了一條包含n個雜色串珠的手串 每個串珠要麼無色,要麼塗了若干種顏色。為了使手串的色彩看起來不那麼單調,金主要求,手串上的任意一種顏色 不包含無色 在任意連續的m個串珠裡至多出現一次 注意這裡手串是乙個環形 手串上的顏色一共有c種。現在按順...

c 病句 今日頭條面試題

試題描述 為了提高文章質量,每一篇文章 假設全部都是英文 都會有m名編輯審核,每個編輯獨立工作,會把覺得有問題的句子通過下標記錄下來,比如 1,10 1表示病句的第乙個字元,10表示病句的最後乙個字元。也就是從1到10個字元組成的句子,是有問題的。現在需要把多名編輯有問題的句子合併起來,送給總編輯進...