Pythonの障害リストからドロップされた正しいセンサー値を見つけるプログラム
2つのリストnums1とnums2があり、それらはセンサーメトリックを表しています。各リストには一意の値が含まれているため、a≠bです。これら2つのリストの1つは正確なセンサーメトリックを保持していますが、もう1つには障害があります。障害のあるリストでは、最後の値ではない1つの値が削除され、間違った値がそのリストの最後に配置されました。ドロップされた実際の値を見つける必要があります。
したがって、入力がnums1 =[5、10、15] nums2 =[10、15、8]の場合、最初のリストnums1は実際の値=[5、10、15]を保持するため、出力は5になります。 2番目の配列では、それが削除され、最後に8が挿入されます。
これを解決するには、次の手順に従います-
- 低:=0
- 高:=
- nums1のサイズ-1
- 低い<高い間、実行する
- 中:=床(低+高)/ 2
- nums1[mid]がnums2[mid]と同じ場合、
- 低:=中+1
- それ以外の場合、
- 高:=中
- nums1 [low +1]がnums2[low]と同じ場合はnums1[low]を返し、それ以外の場合はnums2[low]を返します
例
理解を深めるために、次の実装を見てみましょう-
def solve(nums1, nums2): low, high = 0, len(nums1) - 1 while low < high: mid = (low + high) // 2 if nums1[mid] == nums2[mid]: low = mid + 1 else: high = mid return nums1[low] if nums1[low + 1] == nums2[low] else nums2[low] nums1 = [5, 10, 15] nums2 = [10, 15, 8] print(solve(nums1, nums2))
入力
[5, 10, 15], [10, 15, 8]
出力
5
-
Pythonのサブツリーのノード値の合計から最小値を見つけるプログラム
すべてのノードに1からnまでの番号が付けられたツリーがあるとします。各ノードには整数値が含まれています。ここで、ツリーからエッジを削除する場合、2つのサブツリーのノード値の合計の差を最小限に抑える必要があります。そのようなサブツリー間の最小の違いを見つけて返す必要があります。ツリーはエッジのコレクションとして提供され、ノードの値も提供されます。 したがって、入力がn =6の場合、edge_list =[[1、2]、[1、3]、[2、4]、[3、5]、[3、6]]、values =[15、 25、15、55、15、65]の場合、出力は0になります。 エッジ(1,2)を削除すると、重みの
-
リスト内の最小数を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal