用Java實現最快速度的陣列交集

2021-09-10 03:39:04 字數 1401 閱讀 4429

演算法

一、暴力破解法,遍歷兩個陣列,比較值。借用第三個陣列來裝載相同的值。時間複雜度為o(n).

public

static

int[

]intersect

(int

arr1,

int[

] arr2)

else

int[

] n=

newint

[n];

int k=0;

for(

int i=

0;i} n= arrays.

copyof

(n,k)

;return n;

}

演算法二:指標法。

先排序,然後定義兩個指標

時間複雜度為o(nlogn),空間複雜度o(1)

public

class

intersect

else

int[

] n=

newint

[n];

int k=0;

arrays.

sort

(arr1)

; arrays.

sort

(arr2)

;int i=

0,j=0;

while

(ielse

if(arr1[i]

>arr2[j]

)else

} n=arrays.

copyof

(n, k)

;return n;

}

演算法三:

map計數,時間複雜度o(n),空間複雜度o(n),空間換時間

public

class

intersect

mapmap =

newhashmap

();for

(int i =

0;i < arr1.length;i ++

)else

}for

(int i =

0;i < arr2.length;i ++)}

return res;

}public

static

void

main

(string[

] args)

;int

arr2 =

; list

res =

getintersection3

(arr, arr2)

; system.out.

println

(res);}

}

用最快的速度學會Git的運用

隨著寫的 越多會發現,很多小小的短的 會慢慢的被遺忘。雖說不是很高深的 但是感覺平時敲得 一次不小心刪掉了,感覺挺可惜的,而git可以很好地解決這一問題。配置git身份資訊 git config global user.name abc git config global user.email ab...

java用陣列實現棧

棧是一種先進後出的資料結果 只能在一端 稱為棧頂 top 對資料項進行插入和刪除。stacktest package ch04 public class stacktest system.out.println isfull stack.isfull while stack.isempty clas...

用java陣列實現棧

棧是一種常見的資料結構。如果用一句話來概括棧的特點,估計大部分同學都能脫口而出 後進先出,即先進來的元素儲存在棧的最底部,新來的元素則在棧頂堆積,直到棧滿為止 而取元素的時候,只能從棧頂取,直到棧空為止。整個過程,與摞書的過程很類似 放書的時候都是摞在最上面,取書的時候也是從最上面開始取。要想取出下...