LeetCode 2960: テスト済みデバイスのカウント問題

長さn、0から始まるインデックスを持つ整数配列batteryPercentagesが与えられ、これはn個のデバイスのバッテリー百分比を表します。

あなたのタスクは、各デバイスiを順番にテストし、以下のテスト操作を実行することです:

もしbatteryPercentages[i]が0より大きい場合:

テスト済みデバイスのカウントを増やす。
インデックスが[i + 1, n - 1]のすべてのデバイスのバッテリー百分比を1減らす。ただし、バッテリー百分比が0未満にならないようにする。つまり、batteryPercentages[j] = max(0, batteryPercentages[j] - 1)。
次のデバイスに移動する。

そうでなければ、何も実行せずに次のデバイスに移動する。

テスト操作を順番に実行した後のテスト済みデバイスの数を整数で返してください。

例1:

入力:batteryPercentages = [1,1,2,1,3] 出力:3 説明:デバイス0から順にテスト操作を実行します:

デバイス0で、batteryPercentages[0] > 0なので、テスト済みデバイスは1つになり、batteryPercentagesは[1,0,1,0,2]に変わります。 デバイス1で、batteryPercentages[1] == 0なので、テストせずに次のデバイスに移動します。 デバイス2で、batteryPercentages[2] > 0なので、テスト済みデバイスは2つになり、batteryPercentagesは[1,0,1,0,1]に変わります。 デバイス3で、batteryPercentages[3] == 0なので、テストせずに次のデバイスに移動します。 デバイス4で、batteryPercentages[4] > 0なので、テスト済みデバイスは3つになり、batteryPercentagesは変わりません。

したがって、答えは3です。

例2:

入力:batteryPercentages = [0,1,2] 出力:2 説明:デバイス0から順にテスト操作を実行します:

デバイス0で、batteryPercentages[0] == 0なので、テストせずに次のデバイスに移動します。 デバイス1で、batteryPercentages[1] > 0なので、テスト済みデバイスは1つになり、batteryPercentagesは[0,1,1]に変わります。 デバイス2で、batteryPercentages[2] > 0なので、テスト済みデバイスは2つになり、batteryPercentagesは変わりません。

したがって、答えは2です。

ヒント:

1

タグ: LeetCode C++ アルゴリズム 配列 計算量

5月19日 23:13 投稿