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

最短のサブリストを見つけるようにプログラムして、リスト全体を並べ替えた後、Pythonで並べ替えます


numsと呼ばれる数値のリストがあるとすると、numで最も短いサブリストの長さを見つける必要があります。サブリストが並べ替えられている場合、配列nums全体が昇順で並べ替えられます。

したがって、入力がnums =[1,2,5,4,9,10]のような場合、サブリスト[4、3]を並べ替えると[0、1、3、4]になるため、出力は2になります。 、8、9]

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

  • f:=-1、l:=-1
  • lst:=リスト番号を並べ替える
  • 0からnumsのサイズの範囲のiの場合は、
    • nums[i]がlst[i]と同じでない場合、
      • fが-1と同じ場合、
        • f:=i
      • それ以外の場合、
        • l:=i
  • lが-1と同じで、fが-1と同じ場合、
    • 0を返す
  • return l --f + 1

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

class Solution:
   def solve(self, nums):
      f=-1
      l=-1
      lst=sorted(nums)
      for i in range(len(nums)):
         if nums[i]!=lst[i]:
            if f == -1:
               f=i
            else:
               l=i
            if l == -1 and f == -1:
      return 0
return l-f+1
ob = Solution() print(ob.solve([1,2,5,4,9,10]))

入力

[1,2,5,4,9,10]

出力

2

  1. Pythonのソートされたリスト内のすべてのペアの絶対差の合計を見つけるプログラム

    numsと呼ばれるソートされた数値のリストがあるとすると、指定されたリスト内の数値のすべてのペア間の絶対差の合計を見つける必要があります。ここでは、(i、j)と(j、i)が異なるペアであると見なします。答えが非常に大きい場合は、結果を10 ^ 9+7で変更します。 したがって、入力がnums =[2、4、8]のような場合、出力は| 2--4|のように24になります。 + | 2-8 | + | 4-2 | + | 4-8 | + | 8-2 | + |8-4|。 これを解決するには、次の手順に従います- m =10 ^ 9 + 7 合計:=0 0からnumsのサイズの

  2. Pythonで合計kになるリスト内の任意の2つの数値を検索するプログラム

    numsと呼ばれる数のリストがあり、別の数kがあるとすると、リストに存在する2つの数の合計がkになるかどうかを確認する必要があります。同じ要素を2回使用しないでください。また、数値は負または0にすることができます。 したがって、入力がnums =[45、18、9、13、12]、k =31のような場合、出力はTrueになります(18 + 13 =31 )。 これを解決するには、次の手順に従います- temp_set:=新しいセット numsの各numに対して、実行します numがtemp_setにある場合、 Trueを返す temp_setに(k-num)を追加します Fa