スポンサーリンク

【LeetCode】15. 3Sum 解答・解説【Python】

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

 

問題

原文

Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != ji != k, and j != k, and nums[i] + nums[j] + nums[k] == 0.

Notice that the solution set must not contain duplicate triplets.

 

Example 1:

Example 2:

Example 3:

 

Constraints:

  • 3 <= nums.length <= 3000
  • -105 <= nums[i] <= 105

 

内容

整数配列numsが与えられます。i,j,kが全て異なり、nums[i],nums[j],nums[k]の合計が0になる組み合わせを返してください。

 

※i,j,kは配列numsの中で全て異なる要素である必要はありますが、値は同じ場合もあります。

 

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

方針

前提

実装のイメージ

・解答1:2ポインタを使用します。

→3つの数字の組み合わせの内、1つ目の数字は配列numsに対して端から順番に処理することで走査する。

→3つの数字の組み合わせの内、残り2つの数字は、2ポインタで左右から狭めながら問題の条件を満たす組み合わせを調べる

 

解答

解答1:2ポインタ

 

解答2

 

 

補足・参考・感想

■補足

■参考

 

 

前:11. Container With Most Water

次:977. Squares of a Sorted Array

LeetCode 解答・解説記事一覧

コメント