スポンサーリンク

【LeetCode】 350. Intersection of Two Arrays II 解答・解説【Python】

スポンサーリンク
スポンサーリンク
この記事は約3分で読めます。

 

はじめに

 

ポイント

  • 総当たり法で解答

 

この記事のメリット

  • 配列操作の初歩が学べる

 

この記事が役立ちそうな方

  • 配列の扱いに慣れたい方
  • 総当たり法(brute force)から時間計算量を改善するコードを書きたい方

 

 

詳細

 

問題

 

原文

Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must appear as many times as it shows in both arrays and you may return the result in any order.

 

Example 1:

Example 2:

 

Constraints:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

 

Follow up:

  • What if the given array is already sorted? How would you optimize your algorithm?
  • What if nums1‘s size is small compared to nums2‘s size? Which algorithm is better?
  • What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?

 

 

内容(和訳)

2つの配列nums1,nums2が与えられます。

両方の配列に出現する要素を集めた配列を返してください。

戻り値の配列の各要素は、それぞれの配列で出現した回数のみである必要があります。

戻り値の配列の各要素は任意の順番で良いです。

 

※正しくない可能性があります。

 

解答

 

解答1:Python, brute force

・時間計算量:O(n^2)

・空間計算量:O(n)

 

問題文の制約より、配列の要素数がそれぞれ1000以内なのでこの方法でも間に合いました。

1 <= nums1.length, nums2.length <= 1000

 

 

 

 

終わりに

補足・参考・感想

 

 

 

疑問が解決した方はこちらへ

前:404. Sum of Left Leaves

次:121. Best Time to Buy and Sell Stock

LeetCode 解答・解説記事一覧

 

疑問が解決しない方はこちらへ

テーマごとに問題を分類しているので、集中して問題を解くことができます。

LeeetCodeの問題をアルゴリズムとデータ構造による分類

 

 

 

コメント