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

Pythonのすべての正のプレフィックス合計に対して最初に挿入する最小値を見つけるプログラム


numsという番号のリストがあるとします。結果のリストのプレフィックスの合計にすべて0より大きい数値が含まれるように、numsの先頭に挿入できる最小の正の値を見つける必要があります。

したがって、入力がnums =[3、-6、4、3]の場合、出力は4になります。これは、リストに4を挿入すると、[4、3、-6、4、3]になるためです。 。これで、プレフィックスの合計は[4、7、1、5、8]になり、すべて0より大きくなります。

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

  • 位置0のnumsに0を挿入します

  • 範囲1からnums-1のサイズのiの場合、実行します

    • nums [i]:=nums [i] + nums [i-1]

  • 戻り値1-最小数

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

def solve(nums):
   nums.insert(0, 0)
   for i in range(1, len(nums)):
      nums[i] += nums[i - 1]
   return 1 - min(nums)

nums = [3, -6, 4, 3]
print(solve(nums))

入力

[3, -6, 4, 3]

出力

4

  1. Pythonですべてのポイントを接続するための最小コストを見つけるためのプログラム

    (x、y)の形式のいくつかの点を持つpointsという配列があるとします。ここで、2つのポイント(xi、yi)と(xj、yj)を接続するコストは、それらの間のマンハッタン距離であり、式は| xi--xj|です。 + | yi--yj|。すべてのポイントを接続するための最小コストを見つける必要があります。 したがって、ここでの合計距離は(6 + 5 + 3 + 8)=22です。 これを解決するには、次の手順に従います- points_set:=範囲0からポイントのサイズ-1までの数値を保持する新しいセット ヒープ:=ペア(0、0)でヒープを作成します visited_node:

  2. Pythonですべての出荷を完了するための総コストを見つけるためのプログラム

    ポートと呼ばれるリストのリストがあるとします。ここで、ports[i]はポートiが接続されているポートのリストを表します。また、出荷と呼ばれるリストの別のリストがあります。ここで、シーケンス[i、j]の各リストは、ポートiからポートjへの出荷要求があることを示します。また、ポートiからポートjに出荷するコストは、2つのポートからの最短経路の長さであるため、すべての出荷を完了するために必要な合計コストを見つける必要があります。 4からです。 これを解決するために、次の手順に従います- n:=ポートのサイズ dist:=ポートリストからの隣接行列 0からnの範囲のjについては、