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

Pythonの最初の悪いバージョン


ある会社で、ある製品マネージャーが新製品を開発するチームを率いているとします。最新バージョンが品質チェックに失敗したとします。各バージョンは前のバージョンに基づいて開発されているため、不良バージョン以降のすべてのバージョンが不良になります。したがって、n個の要素[1、2、…n]を持つ配列Aがあり、この配列から最初の不良バージョンを見つける必要があります。

関数isBadVersion(version_id)があるとすると、これはバージョンが悪いかどうかを返します。たとえば、n =5で、バージョン=4が最初の不良バージョンであるとします。したがって、isBadVersion(3)がfalseを返し、isBadVersion(5)がtrueを返し、isBadVersion(4)もtrueを返す場合、最初の不良バージョンは4です

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

  • n <2の場合、nを返します
  • 指定された関数を使用して不良バージョンを検出するために、バイナリ検索アプローチを実行します。

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

first_bad = 0
def isBadVersion(version):
   if version >= first_bad:
      return True
   return False
class Solution:
   def firstBadVersion(self, n):
      if n <2:
         return n
      start = 1
      end = n
      while(start<=end):
         mid = (start+end)//2
         if isBadVersion(mid) and not isBadVersion(mid-1):
            return mid
         elif isBadVersion(mid-1):
            end = mid-1
         else:
            start = mid+1
ob1 = Solution()
first_bad = 4
op = ob1.firstBadVersion(5)
print(op)

入力

5
4

出力

4

  1. Pythonのファーストクラス関数

    さまざまなプログラミング言語では、ファーストクラスオブジェクトはそれらのオブジェクトであり、均一に処理できます。ファーストクラスオブジェクトは、データ構造、他の関数の一部のパラメーター、制御構造などとして格納できます。ファーストクラスオブジェクトのすべてのプロパティをサポートしている場合、Pythonの関数はファーストクラス関数であると言えます。 ファーストクラス関数のプロパティは何ですか? これはオブジェクトタイプのインスタンスです 関数は変数として保存できます 他の関数の引数として第一級関数を渡す 他の関数から関数を返す 関数をリスト、セット、またはその他のデータ構造に格納します。

  2. Pythonモジュールのバージョンを確認する方法は?

    Pythonをインストールすると、Pythonパッケージマネージャーpipも取得します。 pipを使用して、Pythonモジュールのバージョンを取得できます。インストールされているすべてのPythonモジュールをバージョン番号とともに一覧表示する場合は、次のコマンドを使用します。 $ pip freeze 出力が表示されます: asn1crypto==0.22.0 astroid==1.5.2 attrs==16.3.0 Automat==0.5.0 backports.functools-lru-cache==1.3 cffi==1.10.0 ... バージョン番号を個別に見つけるには、