Python
 Computer >> コンピューター >  >> プログラミング >> Python

3Pythonでの合計


数値の配列があるとします。これはn個の整数を格納し、配列にはa + b + c =0のような要素a、b、cがあります。状況を満たす配列内のすべての一意のトリプレットを見つけます。したがって、配列が[-1,0,1,2、-1、-4]の場合、結果は[[-1、1、0]、[-1、-1、2]]になります

これを解決するには、次の手順に従います-

  • 配列番号を並べ替えて、配列解像度を定義します
  • 0からnumsの長さの範囲のiの場合– 3
    • i>0かつnums[i]=nums [i-1]の場合、次の部分をスキップして続行します
    • l:=i + 1およびr:=numsの長さ– 1
    • while l
    • sum:=nums [i]、nums [l]、nums[r]の合計
    • sum <0の場合、l:=l + 1、それ以外の場合、sum> 0の場合、r:=r – 1
    • それ以外の場合は、nums [i]、nums [l]、nums[r]をres配列に挿入します
    • while l
    • lを1増やします
  • r>0かつnums[r]=nums [r-1]
    • rを1減らします
  • lを1増やし、rを1減らします
  • return res
  • 例(Python)

    理解を深めるために、次の実装を見てみましょう-

    class Solution(object):
       def threeSum(self, nums):
          nums.sort()
          result = []
          for i in range(len(nums)-2):
             if i> 0 and nums[i] == nums[i-1]:
                continue
             l = i+1
             r = len(nums)-1
             while(l<r):
                sum = nums[i] + nums[l] + nums[r]
                if sum<0:
                   l+=1
                elif sum >0:
                   r-=1
                else:
                   result.append([nums[i],nums[l],nums[r]])
                   while l<len(nums)-1 and nums[l] == nums[l + 1] : l += 1
                   while r>0 and nums[r] == nums[r - 1]: r -= 1
                   l+=1
                   r-=1
          return result
    ob1 = Solution()
    print(ob1.threeSum([-1,0,1,2,-1,-4]))
    入力
    [-1,0,1,2,-1,-4]

    出力

    [[-1,-1,2],[-1,0,1]]

    1. Pythonのissuperset()

      この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

    2. PythonでのQuine

      Quineは、入力を受け取らないプログラムですが、出力を生成します。独自のソースコードが表示されます。さらに、Quineにはいくつかの条件があります。プログラム内でソースコードファイルを開くことができません。 サンプルコード a=a=%r;print (a%%a);print (a%a) 出力 a=a=%r;print (a%%a);print (a%a) このクワインはどのように機能していますか? ここでは、単純な文字列フォーマットが機能しています。変数「a」を定義し、a内に「a =%r; print(a %% a)」を格納します。次に、aの値を出力し、%rをaの値に置き換