一.using c++ to write a queue. need support function push(), pop()
答案:
#include #include using namespace std;
template struct node
};class myqueue;
template myqueue::myqueue()
template myqueue::~myqueue()
}template unsigned int myqueue::size()
template void myqueue::push(t ele)
else
(this->num)++;
}template void myqueue::pop()
}template void myqueue::back()
}template void myqueue::front()
}
二. given a non-empty binary tree, find the minimum path sum.
for this problem, a path is defined as any sequence of nodes
the path must contain at least one node and "does not need to go through the root".
input: [-10,9,20,null,null,15,7]
-10/ \
9 -20
/ \
-15 7
output: -45
----------
/* * definition for a binary tree node.
* struct treenode
* };
*/
答案:
void minpathsum(treenode* root,int& left, int&right,int &minsum);
int minpathsum(treenode* root)
void minpathsum(treenode* root,int& left, int&right,int &minsum)
int left1,right1,left2,right2;
minpathsum(root->left,left1,right1,minsum);//left subtree
minpathsum(root->right,left2,right2,minsum);//right subtree;
left = root->val;
right = root->val;
if(max(left1,right1)>=0 &&max(left2,right2)>=0)
if(max(left1,right1)<0)
if(max(left2,right2)<0)
minsum = min(left+right+root->val,minsum);
}/***部分邊界處理錯誤了...
*/-----------
三. compare orb feature to fast
答案:
orb = fast + brief
orb演算法提取特徵是在fast演算法上進行改進的.
在用fast提取出特徵點後,再加乙個特徵點方向,來實現了演算法特徵點的旋轉不變性。
fast本質是一種檢測特徵點的演算法,主要檢測區域性灰度變化明顯的地方,
其主要思想是:如果某個畫素點與鄰域畫素差別較大,那麼該點更有可能是特徵點。
檢測基本流程如下:
1. 在影象中選取某個畫素點p,假設它的亮度為`lp`;
2.設定某個畫素亮度的閾值t,例如`0.3*lp`;
3.以畫素p為中心點,遍歷其周圍半徑為3的圓上的16個畫素點的亮度值;
4.如果檢測出來該圓連續n個畫素點亮度大於`lp+t`,或者連續n個畫素點亮度小於`lp-t`,則畫素點p可認為是特徵點。
5.迴圈以上步驟,對每個畫素執行相同操作。
fast僅比較畫素間的亮度差異,並且不具備方向和尺度資訊,在實際視覺應用中存在缺陷。
鑑於此,orb增加了尺度和方向的描述。
orb演算法使用矩來確定fast特徵點的方向,也就是:
通過矩來計算特徵點以半徑r範圍內的質心,特徵點座標到質心形成乙個向量來作為該特徵點的方向。
brief是乙個二進位制描述子,該演算法計算粗乙個二進位制的特徵描述符。它的具體思想如下:
1.在乙個特徵點的鄰域內,選擇n對畫素點`p(i),q(i)(i=1,2...,n)`;
2.比較每個點對的灰度值大小l,如果`l[p(i)]>l[q(i)]`,生成二進位制串中的1,反之生成0;
3.迴圈以上步驟,對每個畫素對執行相同操作。
生成的n一般取128,256或512.
orb演算法對原始brief進行了改進,使用了高斯函式進行平滑,並加入了抗噪,考慮到了旋轉和縮放。
在加入抗噪後orb在旋轉和縮放中仍有較好表現。
同時fast和brief組合也非常高效,使得orb特徵在視覺slam很受歡迎。
題目1:用二分法求解對於輸入的浮點數x,計算√x的值。
#define prec 0.0001
float func1(float x)
if(x=1)
float begin = 0;
float end = x;
float middle =x/2;
while(middle*middle>x+prec ||middle*middlex-prec )
}return middle;
}
題目2:乙個環上有n個人,編號為0,1,2,3…n-1。從0開始報數,當報到k的人出局,剩下的人接著報。直到所有人出局,對於給定的n和k,輸出依次出局的編號。
//這道題可以用遞迴,我先定義int函式,然後print
int getnum(int n, int k)
int out = (n+k-1)%n-1;
return (getnum(n-1,k)+k-1)%n+1;
}int answer(int n, int k)
lst.erase(iterdel);
}return *iter;
}void func2(int n, int k)
if((a=b+c)||(b=a+c)||(c=a+b))
if((a=b-c)||(b=a-c)||(c=a-b))
if((a=b*c)||(b=a*c)||(c=a*b))
if((a=b/c)||(b=a/c)||(c=a/b))
}
自動駕駛汽車與自動駕駛網路
談到自動駕駛網路很容易讓人聯想到自動駕駛汽車,恰好讀到google的工程師用自動駕駛汽車和自動駕駛網路做的乙個模擬,感覺很有道理的樣子,記錄並分享一下 開發一輛自動駕駛汽車所需要的 1 一輛比較現代的車 2 各式各樣的感測器 效能強大的計算機 ai軟體。3 大量的訓練和測試。類似地,開發自動駕駛網路...
自動駕駛相關
計畫 2021年1月10號前,查資料,了解相關資訊 學習目標 1 路徑規劃,有地圖的基礎上,起點到終點的路徑規劃 2 路徑規劃的技術上,避障等如何實現 自動駕駛工程師,谷歌認證機器學習專家,蘭州大學無人駕駛團隊創始人,主攻深度學習,無人駕駛汽車方向。學習資料記錄 優達學城 學習筆記 20200102...
自動駕駛相關
在實際上行駛中,自動駕駛車輛除了直行,還需要根據需求右轉 左轉或者是倒車,倒車的可能性很小,幾乎沒有自動駕駛公司去做這個場景,左轉相比右轉會更難。尤其是在沒有交通訊號燈,或者是停車標識來引導的左轉,這稱之為無保護左轉,即便是對人類司機而言,都是相當困難的,自動駕駛車輛遇到同樣的難題。waymo的行為...