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

Pythonで一意の配列の連続する間隔を見つけるプログラム


numsと呼ばれる一意の番号のリストがあるとします。並べ替えられた数値の2D行列を見つける必要があります。各リストは、数値が連続している数値を要約した包括的区間を表します。

したがって、入力がnums =[10、11、12、15、16、17、28、30]のような場合、出力は[[10、12]、[15、17]、[28、28]になります。 、[30、30]]、リスト[10から12]のように、[15から17]は隣接しており、28と30があり、[28から28]と[30から30]として表されます。

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

  • リスト番号を並べ替える

  • numsの最後に無限大を挿入

  • ans:=新しいリスト


  • l:=nums [0]

  • 1からnumsのサイズの範囲のiの場合、実行します

    • nums[i]がnums[i-1]+ 1と同じでない場合、

      • ansの最後に[l、nums[i-1]]を挿入します

      • l:=nums [i]

  • ansを返す

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

class Solution:
def solve(self, nums):
   nums.sort()
   nums.append(1e9)
   ans=[]
   l=nums[0]
   for i in range(1,len(nums)):
      if nums[i] != nums[i-1] + 1:
         ans.append([l, nums[i-1]])
         l=nums[i]
   return ans
ob = Solution()
nums = [10, 11, 12, 15, 16, 17, 28, 30]
print(ob.solve(nums))

入力

[10, 11, 12, 15, 16, 17, 28, 30]

出力

[[10, 12], [15, 17], [28, 28], [30, 30]]

  1. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '

  2. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列を指定すると、配列内で最大の要素を見つける必要があります。 アプローチ maxを最初の要素として初期化します。 この後、指定された配列を2番目の要素から最後までトラバースします。 トラバースされたすべての要素について、現在のmaxの値と比較します maxより大きい場合、maxが更新されます。 それ以外の場合、ステートメントはを超えます 以下の実装を見てみましょう- 例 def largest(arr,n):    #maximal element