オリジナルタイトル:
整数の順序付けられていないシーケンスを考えると、連続した数の最長シーケンスを見つけます。
例えば:
与えられた[100、4、200、1、3、2]、
連続した数の最長シーケンスは[1、2、3、4]です。
Xiaocaiによって与えられるソリューション:
関数MaxSequence(array、step){var _array = array.slice()、// clone array_step = 1、_arraytemp = []、i = 0; var parselogic = {// result containerparseresults:[]、// set value to array、最後のアレイは何ですか? function(n){this.parseresults [this.parseresults.length-1] .push(n);}、// parseresultsget:function(){return this.parseress.length-1];}、// parsereResultsditemに新しいアレイを置く{parseresultsget:function(){return this.parseress.length-1];}を取得します。 function(){this.parseresults.push([]);}、// sort parseresultssortbyasc:function(){this.parseresults.sort(function(a、b){return a.length -b.length;});}}; // check params_step || _STEP; // asc_array.sort(function(a、b){return a -b _arraytemp.slice(); _ arraytemp = []; // parse arrayparselogic.additem(); _array [i+1]){parselogic.set(_array [i]); continue;} if(_array [i] -_ step == _array [i-1]){parselogic.set(_array [i]); parselogic.additem();}} parselogic.get();}指示に電話:
方法名:
MaxSequence(配列、ステップ)
パラメーター説明:
配列:見つかる配列。必要。
ステップ:シーケンスステップ(増分)。オプション、デフォルトは1です。
返品値:
この方法は、着信配列を変更せず、最大のシーケンスを含む新しい配列を返します。
コール例:
最大順序([5,7,2,4,0,3,9]、1); // return [2,3,4,5]最大順序([5,7,2,4,0,3,9]、2); //戻る[5,7,9]