首先需要的是和面試的人確認(rèn)題目的含義,并非直接答題。
創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為南崗等服務(wù)建站,南崗等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為南崗企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。然后,可以提出自己的想法,首先最快的是用linq
{
List<int> array0 = new List<int>() { 1, 2, 9, 3, 5, 2 };
List<int> array1 = new List<int>() { 3, 2, 7 };
List<int> arrayInterSect = array0.Intersect(array1).ToList(); // 交集
最好寫(xiě)個(gè)函數(shù):
public List<int> GetInterSect(List<int> array0, List<int> array1)
{
return array0.Intersect(array1).ToList();
}
如果是差集合并集的話,可以用如下方法解決:
List<int> arrayExcept = array0.Except(array1).ToList();// 差集 List<int> arrayUnion = array0.Union(array1).ToList(); // 并集
當(dāng)然,考算法的話,還需要進(jìn)一步進(jìn)行。
基本思路可以口頭說(shuō)明是用兩個(gè)for 循環(huán),逐個(gè)匹配。 T(n) = O(n^2); 不要實(shí)現(xiàn),因?yàn)镺(n^2)的算法不好。
其次稍好的方法可以先快排數(shù)組,然后兩邊同時(shí)開(kāi)始遍歷數(shù)組。時(shí)間復(fù)雜度是 O(nlogn).
O(n)的算法才是期望的答案??梢圆捎肏ashtable, 或者Dictionary.
// The values in array0/array1 must be unique. public static List<int> GetIntersect(List<int> array0, List<int> array1)
{
Dictionary<int, int> dicIntersect = new Dictionary<int, int>();
List<int> intersectData = new List<int>();
// Traverse the first array. foreach (var data in array0)
{
if (!dicIntersect.Keys.Contains(data))
{
dicIntersect.Add(data,0);
}
dicIntersect[data]++;
}
// Traverse the second array. foreach (var data in array1)
{
if (!dicIntersect.Keys.Contains(data))
{
dicIntersect.Add(data,0);
}
dicIntersect[data]++;
}
// Traverse the dictionary to find the duplicated values. foreach (var intData in dicIntersect)
{
if (intData.Value > 1)
{
intersectData.Add(intData.Key);
}
}
return intersectData;
}
}
文章題目:(C#)求兩個(gè)數(shù)組的交集-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://jinyejixie.com/article4/hghie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、軟件開(kāi)發(fā)、搜索引擎優(yōu)化、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)