Pythonで番号がありません
0からnまでの数字のリストがあるとします。欠落している番号が1つあります。効率的なアプローチで不足している番号を見つける必要があります。したがって、A =[0、1、2、3、4、5、7、8、9]の場合、欠落している数は6です。
これを解決するために、二分探索アプローチを使用します。
- リストを昇順で並べ替える
- 高=Aの長さ、低=0
- 低い<高い間、実行する
- 中=低+(高–低)/ 2
- if A [mid]> mid
- 高=中
- それ以外の場合
- 低=中+1
- 低く戻す
例
理解を深めるために、次の実装を見てみましょう-
class Solution(object): def missingNumber(self, nums): """ :type nums: List[int] :rtype: int """ nums.sort() high = len(nums) low = 0 while low<high: mid = low + (high-low)//2 if nums[mid]>mid: high = mid else: low = mid+1 return low ob1 = Solution() print(ob1.missingNumber([5,3,1,7,8,0,9,2,4]))
入力
nums = [5,3,1,7,8,0,9,2,4]
出力
6
-
Pythonで整数を逆にする
32ビットの符号付き整数が1つあるとします。数字を取り、数字を逆にする必要があります。したがって、数値が425のような場合、出力は524になります。数値が符号付きであることに注意する必要があるもう1つの点は、負の数が存在する可能性があることです。したがって、番号が–425の場合、–524になります。 ここにいくつかの仮定があります。 32ビット符号付き整数のドメインで使用していると仮定しました。したがって、範囲は[-232〜232 –1]になります。したがって、数値が範囲内にない場合、関数は0を返します。 これを解決するために、Pythonコードを使用します。まず、指定された整数を文字列に
-
Pythonのfactorial()
数値の階乗を見つけることは、Pythonを含むデータ分析やその他の数学的分析で頻繁に必要とされます。階乗は、1から指定された数までのすべての整数を乗算することにより、常に正の整数に対して検出されます。以下に示すように、これを見つけるには3つのアプローチがあります。 Forループの使用 forループを使用して、指定された数まで1番を繰り返し、各ステップで乗算を続けることができます。以下のプログラムでは、ループで使用する前に、数値を入力して入力を整数に変換するようにユーザーに求めています。このようにして、計算で正の整数を確実に取得します。 例 n = input("Enter a nu