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

Pythonでの最大スワップ


負でない整数があるとします。最大値の数値を取得するには、最大で2桁を1回入れ替えることができます。取得できる最大値の数値を返す必要があります。したがって、入力が2736のような場合、出力は7236になります。したがって、ここでは2と7を入れ替えています。

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

  • num:=数字から各桁を切り取り、リストを作成します
  • num1:=numを逆の順序で並べ替えます
  • インデックス:=0
  • while index
  • num1[index]がnum[index]と同じでない場合
    • a:=インデックス(インデックス+ 1)から終了までのnumのサブ配列
    • 逆にする
    • a:=aの長さ–+インデックスのnum[インデックス]のインデックス+1 – 1
    • num [index]、num [a]:=num [a]、num [index]
    • ループを破る
  • インデックスを1つ増やします
  • numに存在する数値を結合し、これを整数にします
  • 結果を返します。
  • 例(Python)

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

    class Solution:
       def maximumSwap(self, num):
          num = list(map(int,list(str(num))))
          num1 = sorted(num,reverse=True)
          index=0
          while index<len(num):
             if num1[index]!=num[index]:
                a = num[index+1:]
                a.reverse()
                a=len(a) - a.index(num1[index])+index+1 -1
                num[index],num[a] = num[a],num[index]
                break
             index+=1
          return int("".join(str(x) for x in num))
    ob1 = Solution()
    print(ob1.maximumSwap(5397))
    入力
    5397

    出力

    9357

    1. Pythonの最大サブアレイ

      整数配列Aがあるとします。長さが少なくとも1で、合計が最大である連続したサブ配列を見つけて、その合計を返す必要があります。したがって、配列AがA =[-2,1、-3,4、-1,2,1、-5,4]のようである場合、合計は6になり、サブ配列は[4、-1になります。 、2、1] これを解決するために、動的計画法のアプローチを使用してみます。 Aのサイズと同じ配列dpを定義し、0で埋めます dp [0]:=A [0] for i =1 to the size of A – 1 dp [i]:=最大dp [i – 1] +A[i]およびA[i] 最大値をdpで返す 理解を深める

    2. Pythonプログラムは最大3つ。

      3つの数abとcが与えられた場合、私たちのタスクは、与えられた数の中から最大の要素を見つけなければならないということです。 例 Input: a = 2, b = 4, c = 3 Output: 4 アルゴリズム Step 1: input three user input number. Step2: Add three numbers to list. Step 3: Using max() function to find the greatest number max(lst). Step 4: And finally we will print maximum numbe