搜尋

首頁  >  問答  >  主體

java - 如何快速找出两个数组的交集,前提是两个数组都是百万级的

快速找出两个数组的交集,两个数组大小分别是百万级的。
PS :hash算法

怪我咯怪我咯2770 天前920

全部回覆(3)我來回復

  • 黄舟

    黄舟2017-04-17 12:02:03

    先確保兩個陣列都是以相同方向排好序的,剩下的就是個O(N)的演算法了。

    PS. 題主其實沒說清楚,按照定義,只有“集合”才有“交集”,“集合”中不能有重複的元素,但“數組”沒這個限制。

    回覆
    0
  • PHPz

    PHPz2017-04-17 12:02:03

    1.將一個陣列存入hashset中,O(N)
    2.遍歷另一個陣列,判斷元素是否在set裡,O(N)
    總演算法時間複雜度O(N)
    而@windoze 的演算法中,排序最快也是O(NlogN),所以,我的會快一些(如果是無序的話)

    回覆
    0
  • 迷茫

    迷茫2017-04-17 12:02:03

    PHP有什麼好辦法實現

    回覆
    0
  • 取消回覆