アレイの突然の変化をどうやって見つけますか?両方の例でアレイの突然の変化をすべて検出する
1,3,8,14,58,62,69
In this case, there is a jump from 14 to 58
OR
79,77,68,61,9,3,1
In this case, there is a drop from 61 to 9
は、大小のジャンプがあります。たとえば、次の配列を持っている場合。たとえば、2番目のケースでは、77から68までの小さなドロップがあります。しかし、より大きなジャンプ/ドロップが見つかった場合、これは無視しなければなりません。私は私の心の中でアルゴリズムを以下しているが、私は、これはすべての可能なケースをカバーするかどうかわからない:
ALGO
Iterate over array
Diff (i+1)-i
store first difference in a variable
if next diff is bigger than previous then overwrite
次の例では、このALGOは、次のような場合のために動作しません。
あり1, 2, 4, 6, 34, 38, 41, 67, 69, 71
この配列の2つのジャンプです。したがって、それはのように配置する必要があります
[1, 2, 4, 6], [34, 38, 41], [67, 69, 71]
1、2、4、6、34、38、41、67、69、71の出力は? '[1,2,4,6]、[34,38,41]、[67,69,71]'または '28'(最大ジャンプ)?? – Shahid
出力は、ジャンプ/ドロップの開始のインデックス/値になります。例えば[1,2,4,6]、[34,38,41]、[67,69,71]は6と41のような出力を持ちます。 – Twitty
これは[エッジ検出](https: //en.wikipedia.org/wiki/Edge_detection)問題、または1Dアナログ、[ステップ検出](https://en.wikipedia.org/wiki/Step_detection)を参照してください。 –