多くのレコーディング仲間が、昨日のトピック「貪欲アルゴリズム:ジャンピングゲーム II」は難しいと報告しています。これでほっとしました。笑。ちょうど貪欲を説明していたとき、何人かのレコーディング仲間が「貪欲を別途説明する必要はなく、動作ルールを直接説明すればいい」と提案してくれたからです。多くの学生は、それは単なる欲張りで、難しいことではないと感じるかもしれません。貪欲の原理は単純ですが、問題の解決方法は非常に巧妙で、難易度はルールとそれほど変わらないことがわかります。 今日は簡単な質問です。鍵となるのは、貪欲な問題解決の考え方を養うことです。 K 回の否定後の配列の合計を最大化し、問題のアドレス: https://leetcode-cn.com/problems/maximize-sum-of-array-after-k-negations/ 整数の配列 A が与えられた場合、配列を変更する方法は次のとおりです。インデックス i を選択し、A[i] を -A[i] に置き換え、このプロセスを合計 K 回繰り返します。 (同じインデックス i を複数回選択できます。) このように配列を変更すると、配列の最大可能合計が返されます。 例1: 入力: A = [4,2,3]、K = 1 出力: 5 説明: インデックス (1,) を選択すると、A は [4,-2,3] になります。 例2: 入力: A = [3,-1,0,2]、K = 3 出力: 6 説明: インデックス (1, 2, 2) を選択すると、A は [3,1,0,2] になります。 例3: 入力: A = [2,-3,-1,5,-4]、K = 2 出力: 13 説明: インデックス (1, 4) を選択すると、A は [2,3,-1,5,4] になります。 ヒント:
アイデア この質問のアイデアは、実は非常に簡単に考えることができます。配列の合計を最大化するにはどうすればよいでしょうか? 貪欲な思考、局所最適性: 絶対値の大きい負の数を正の数に変換し、現在の値を最大化します。全体的な最適性: 配列全体の合計が最大に達します。 局所最適は全体最適につながる可能性があります。 したがって、すべての負の数を正の数に変換しても、K は依然として 0 より大きくなります。このときの問題は、正の整数の順序付けられたシーケンスであることです。正の数と負の数を K 回変換して、配列の合計を最大化する方法。 次に、別の貪欲なソリューションがあります。ローカル最適ソリューション: 反転する最小の正の整数のみを見つけて、現在の値が最大値に達するようにします (たとえば、正の整数配列 {5, 3, 1} では、1 を反転して -1 を取得することは、5 を反転して -5 を取得するよりもはるかに大きくなります)。グローバル最適ソリューション: 配列全体の合計が最大値に達します。 この問題を解くときに貪欲アルゴリズムについて考えないかもしれませんが、AC を 1 回で取得できます。 「実は、私は見落とされがちな貪欲な思考をお見せするためにここにいます。こんなに単純な問題に、貪欲な思考を 2 回も使いました!」 この問題を解決するための手順は次のとおりです。
対応する C++ コードは次のとおりです。
要約する 貪欲問題が単純化されると、人々は疑問を抱き始めます。「これはこのように行われるべきではないのか?これもアルゴリズムなのか?これは貪欲ではないと思う。」 この問題は実は非常に単純で、貪欲アルゴリズムを知らない人でも解くことができますが、ここでは貪欲アプローチを使用して全体を通して説明します。 欲深い考えは必ず存在するからです! 「貪欲な考え方(局所最適、大域最適)を持っていなければ、感情に基づいて単純な貪欲な質問をするという罠に陥りやすく、難しい貪欲な質問がまったくできなくなります。実際、これでは貪欲な考え方が訓練されません。」 したがって、たとえそれが貪欲な単純な質問だとわかっていても、それを解くには貪欲な思考に頼らなければなりません。これは問題解決の感覚を養うのに非常に役立ちます。 この記事はWeChatの公開アカウント「Code Thoughts」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、Code Thoughts の公開アカウントにご連絡ください。 |
>>: AIと機械理解の限界を打ち破り、オックスフォード大学のコンピューターサイエンス博士の143ページの論文は3Dオブジェクトの再構築とセグメント化を学ぶ
2020 年も終わりに近づいていますが、AI はさまざまなことに役立っています。車を運転したり、音楽...
車に乗り込み、コードをスキャンすると、運転手が操作しなくても黒い「タクシー」が動き出す。横断歩道では...
言語モデルが前例のない規模にまで拡大し続けるにつれて、下流のタスクのすべてのパラメータを微調整するこ...
ビッグデータダイジェスト制作著者: カレブ議論の余地はあるものの、人が嘘をついているかどうかを見抜く...
機械学習の応用は急速に成長しており、医療、電子商取引、銀行業務などのさまざまな分野で不可欠な要素とな...
ナイーブ ベイズ アルゴリズムはシンプルで効率的であり、分類問題を扱う際に最初に検討すべき方法の 1...
私は長年、学界と産業界の両方で機械学習モデリングに取り組んできましたが、Scalable ML で「...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
多くの企業は、顧客エンゲージメントと収益を向上させるための会話型 AI の重要性を急速に認識し始めて...
2023年10月17日(本日)、百度のシンプル検索はアップグレードを発表し、大規模モデルを通じて再構...
C# DES アルゴリズムの暗号化と復号化は、開発のセキュリティ部分として、その使用方法を理解する必...
皆さんもご存知のとおり、GPT-4 や PaLM などの最先端の言語モデルは、複雑な質問に答えたり、...