Pythonで指定された配列がほぼソートされている(要素が最大で1つの位置にある)かどうかを確認します
numsと呼ばれる数値の配列があり、すべての要素が一意であるとします。 numsがほぼソートされているかどうかを確認する必要があります。ご存知のとおり、配列のいずれかの要素が、並べ替えられた配列の元の位置から最大1距離離れた場所で発生する可能性がある場合、配列はほぼ並べ替えられます。
したがって、入力がnums =[10、30、20、40]の場合、10は元の場所に配置され、他のすべての要素は実際の位置から最大1つの場所にあるため、出力はTrueになります。
これを解決するには、次の手順に従います-
- i:=0
- i
- nums [i]> nums [i + 1]の場合、
- nums[i]とnums[i+1]を入れ替える
- i:=i + 1
- i:=i + 1
- nums [i]> nums [i + 1]の場合、
- nums [i]> nums [i + 1]の場合、
- Falseを返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(nums): i = 0 while i < len(nums) - 1: if nums[i] > nums[i + 1]: nums[i], nums[i + 1] = nums[i + 1], nums[i] i += 1 i += 1 for i in range(len(nums) - 1): if nums[i] > nums[i + 1]: return False return True nums = [10, 30, 20, 40] print(solve(nums))
入力
[10, 30, 20, 40]
出力
True
-
Pythonで指定された位置まで配列を反転するプログラム
このチュートリアルでは、特定の位置まで配列を反転する方法を学習します。問題の説明を見てみましょう。 配列があります 整数と数のn 。私たちの目標は、配列の要素を逆にすることです 0日から (n-1)番目のインデックス 索引。たとえば、 Input array = [1, 2, 3, 4, 5, 6, 7, 8, 9] n = 5 Output [5, 4, 3, 2, 1, 6, 7, 8, 9] 目標を達成するための手順。 配列と数値を初期化します n/2までループします。 (i)番目を交換します インデックスと(n-i-1)番目 要素。 結果が得られる配列を印刷します。
-
指定された位置まで配列を反転するPythonプログラム
ここでは、ユーザー入力配列と逆にする配列の位置を指定します。したがって、この配列を逆にすることがタスクです。サブ配列を[0から(n-1)]に逆にします。 例 Input : A=[3, 7, 6, 4, 1, 2] n=4 Output : [1, 4, 6, 7, 3, 2] アルゴリズム Step 1: reverse list starting from n-1 position. Step 2: split remaining list after n. Step 3: concat both parts and prints サンプルコード #Program to reverse a