連続サブアレイ合計

プラサドMadhale:

私は解決策を見Leetcode I上でこの問題に出くわしたが、私はそれが動作する理由を理解することができません。それはモジュラスのどのような性質を適用していますか?どのように我々は我々だけでモジュロ結果の前の出現を見て、kに等しい合計と部分配列を発見したことを言うことができますか?

質問:

非負数のリストおよびK整数目標を与え、アレイはKの倍数にまとめ少なくとも2サイズの連続した部分配列を有するかどうかをチェックする機能を記述し、最大合計のn * kの場合Nはまた、整数です。

実施例1:入力:23、2、4、6、7]、K = 6出力:真の説明:[2,4]はサイズ2及び6に合計最大の連続した部分配列であるため。

質問リンク

解決:

public boolean checkSubarraySum(int[] nums, int k) {
    Map<Integer, Integer> map = new HashMap<Integer, Integer>(){{put(0,-1);}};;
    int runningSum = 0;
    for (int i=0;i<nums.length;i++) {
        runningSum += nums[i];
        if (k != 0) runningSum %= k; 
        Integer prev = map.get(runningSum);
        if (prev != null) {
        if (i - prev > 1) return true;
        }
        else map.put(runningSum, i);
    } 
    return false;
 }

ソリューションリンク

このgautot:

これは実際にあなたがここにしたい場合GFG上の簡単なバージョンについての記事ですが、それまでの単純なひねりを加えた周知の問題である:与えられた合計で検索サブアレイ

全体的なアイデアは、あなたが遭遇したすべての数値の合計を維持し、マップにそれらを挿入することです。あなたはあなたに行くようにすでに値の遭遇していたかどうかを確認actual_total_sumを- target_sum(あなたのマップに設定された値に1がに等しい場合であるactual_total_sum - target_sum)、あなたが持っている場合は、自分で望んでいたを与える部分配列を発見しました値。

今、あなたはそこに何の問題もなく、私は確かにすべてを明確にせてはならないことを理解している場合:

あなたは基本的に0からのすべての要素の合計を表すマップに追加されている数字「それらが追加された位置のインデックス」、したがって、あなたは、インデックスの合計の値を示す整数を持っている[0,0]、[0,1]、 [0,2]、 ... SO、すでに値を追加している場合は、あなたのマップで確認することでactual_total_sumを- target_sumあなたが求めているの、「に等しいインデックスのペア[0、x]はあります- target_sum actual_total_sum場合は、はい、ことを意味するサブアレイ[X + 1は、actual_index] target_sumに等しいです。

今、あなたは簡単なバージョンのためのソリューションを理解しておく必要があり、それが今、この問題のleetcodeのバージョンのためのソリューションを説明するための時間です。

ねじれは単にその代わりに挿入するtotal_sumのサブアレイの値を[0,0]、[0,1]、[0,2]、...あなたのインサートtotal_sum%KSO、あなたのマップでチェックすることにより、すでに価値を追加した場合(actual_total_sum%K) - target_sumあなたが求めているが、「インデックス[0、X]に等しいのペアあり- target_sum(actual_total_sum%k)がはい場合は、 、ことを意味するサブアレイ[X + 1は、actual_index] target_sumの倍数に等しいです。そして、問題の最後の部分のために、あなたは必ずサブアレーはのは非常に簡単あなただけのことをチェックしなければならないことはよく長さ> 2を持ってしなければならないactual_index-(X + 1)> = 1と同じであるactual_index-X> 1を 溶液中で書かれました。

申し訳ありませんが、遅延のため、説明は書き込みに時間がかかりましたが、私はされていない場合、彼らは明確化を求めることを躊躇しないで、明確に十分であることを願っています!

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=202705&siteId=1