1508。ソートされたサブ配列合計の範囲合計
中
n 個の正の整数で構成される配列 nums が与えられます。配列から空ではないすべての連続部分配列の合計を計算し、それらを非降順で並べ替えて、n * (n + 1) / 2 の数値の新しい配列を作成しました。
新しい配列内の、左のインデックスから右のインデックスまでの数値の合計 (1 からインデックス付け) を返します。答えは巨大な数になる可能性があるため、109 + 7.
を法として返します。例 1:
例 2:
例 3:
制約:
ヒント:
解決策:
この問題を解決するには、次の手順に従います:
このソリューションを PHP で実装してみましょう: 1508。ソートされたサブ配列合計の範囲合計
<?php // Example usage $nums = array(1, 2, 3, 4); $n = 4; $left = 1; $right = 5; echo rangeSum($nums, $n, $left, $right); // Output: 13 $left = 3; $right = 4; echo rangeSum($nums, $n, $left, $right); // Output: 6 $left = 1; $right = 10; echo rangeSum($nums, $n, $left, $right); // Output: 50 ?>
部分配列の合計を生成しています:
合計の並べ替え:
必要な範囲の合計:
このソリューションは、すべての部分配列の合計を効率的に生成し、それらを並べ替えて、指定された必要な範囲の合計を計算します。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上がソートされたサブ配列合計の範囲合計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。