原创 語法:Python中的修飾器@

在閱讀源碼時糾結於python中修飾器的原理,在推酷上發現一篇文章感覺講的不錯:python修飾器。還有一篇博客講的挺好:Decorator深入詳解,如果需要更爲全面的瞭解,只能祭出我看到的這篇了,特別的靠譜。decorator全

原创 Failure,Error,Fault之間的區別

通常我們對三者的使用不是那麼的嚴格,但是有時在學術上需要態度嚴謹、字字斟酌,需要明確在什麼情況下使用這個,在什麼情況下使用另一個。引用文章【1】中做的解釋,三者分別定義爲:         Failure: 當服務偏離正常形態的時候的狀態

原创 算法:Python實現中國剩餘定理

中國剩餘定理(Chinese Remainder Theorem-CRT):又稱孫子定理,是數論中的一個定理。即如果一個人知道了一個數n被多個整數相除得到的餘數,當這些除數兩兩互質的情況下,這個人就可以唯一的確定被這些個整數乘積除

原创 分佈式路由協議

路由收斂時間:從網絡故障發生到所有路由器轉發表達式達到一致所需要的時間 路由收斂可能會引起兩個主要問題:路由黑洞和路由迴路。 分佈式路由協議在常用在控制平面。網絡中的涉及轉發的每一個節點通過分佈式算法計算推斷各自的轉發表。

原创 python實現dijkstra最短路由算法

這篇文章主要爲大家詳細介紹了python實現dijkstra最短路由算法,具有一定的參考價值,感興趣的小夥伴們可以參考一下 Dijkstra算法:又稱迪傑斯特拉算法,迪傑斯特拉算法是由荷蘭計算機科學家狄克斯特拉於1

原创 算法:C++實現先遞增後遞減隊列的最值和單調遞增隊列的絕對值最小的值

下午面試,兩面遇到的相同問題,當是回答的不是很好,晚上趕緊分析一下,下面兩個題目是在不同輪次的面試中面試官提出的問題。 題目1:在一個先遞增後遞減的整型數組中,找出最大的數的下標; 題目2:在一個單調遞增的整型數組中,找出絕對值最小的數

原创 算法:C++中的堆排序

堆中元素的排列方式分爲兩種:max-heap或min-heap,前者每個節點的key都大於等於孩子節點的key,後者每個節點的key都小於等於孩子節點的key。 由於堆可以看成一個完全二叉樹,可以使用連續空間的array來模擬完全二叉樹

原创 語法:STL中的有關二分查找的算法

STL加入C++11標準爲C++注入了新的活力,其中提出的泛型編程爲C++程序帶來了翻天覆地的變化,一些泛化的算法實現讓編程變得簡單高效。STL 中有關二分查找的算法主要有三個:lower_bound、upper_bound、binary

原创 Linux:面試常被問到的命令(持續更新)

1、du,df區別: du:查看磁盤空間使用情況,統計目錄或文件所佔空間的大小。 df:查看磁盤文件使用情況,磁盤被佔用的多少空間,還剩多少空間 2、查看一點時間段內被修改過的文件: #查找當前文件夾下30分鐘內修改過的txt文件 fin

原创 語法:c++對關於空指針0/NULL/nullptr三者的演變

字面意義上的解釋: 0:整型常量 NULL:預處理符號 nullptr:空指針類型常量 其中前兩者在C中出現,最後一個在C++11中出現。我們平常會使用這三個符號來表示空指針,但是他們之間還是有許多差別。 NULL 聲明在cstd

原创 算法:C++實現二叉樹遍歷(遞歸、非遞歸)

完成二叉樹創建,然後分別採用前序中序後序三種方式輸出結果。 #include<iostream> #include<stack> #include<queue> //節點結構體 struct Node{ int value;

原创 算法:C++實現BCD進制轉換

#include<iostream> #include<vector> std::string s2i(std::string &s){ if(s[0]=='F'){ return ""; } el

原创 語法:C++中的const變量“不變”與“變”

事出有因,附上代碼: #include<iostream> int main(){ //volatile const int i=10; const int i=10; int *j=const_cast<int*

原创 算法:C++實現二分查找

事出有因,昨晚內推筆試題,採用遍歷的方式提示耗時,由於系統原因(忍不住再次吐槽一下考試系統,估計是單線程隊列模式),本地測試通過但是系統提交不上去,好不容易提交上去發現沒通過全部的測試用例,當考慮用二分查找方式實現時時間已耗完。 題目:新

原创 算法:C++實現O(n)複雜度內查找第K大數

題目:是在一組數組(數組元素爲整數,可正可負可爲0)中查找乘積最大的三個數,最後輸出最大乘積。 從國題目我們知道只有兩種結果存在:1)三個最大的正整數相乘;2)一個最大的正整數和兩個最小的負數相乘。所以我們需要找出數組中最大的三個數的乘