Rumah >hujung hadapan web >tutorial js >JavaScript melaksanakan penyenaraian nombor berturut-turut terpanjang dalam kemahiran array_javascript

JavaScript melaksanakan penyenaraian nombor berturut-turut terpanjang dalam kemahiran array_javascript

WBOY
WBOYasal
2016-05-16 16:23:271177semak imbas

Tajuk asal:

Diberi urutan integer yang tidak tertib, cari jujukan terpanjang bagi nombor berturut-turut.

Contohnya:

Diberi [100, 4, 200, 1, 3, 2],

Jujukan terpanjang bagi nombor berturut-turut ialah [1, 2, 3, 4].

Penyelesaian yang diberikan oleh Xiaocai:

Salin kod Kod adalah seperti berikut:

fungsi maxSequence(array,step){
var _array = array.slice(), //clone array
_langkah = 1,
_arrayTemp = [],
i = 0;
var parseLogic = {
//bekas hasil
ParseResults: [],
//tetapkan nilai kepada tatasusunan,apakah tatasusunan terakhir parseResults
set: fungsi(n){
This.parseResults[this.parseResults.length-1].push(n);
},
//dapatkan tatasusunan terakhir daripada parseResults
Dapatkan: function(){
Kembalikan this.parseResults[this.parseResults.length-1];
},
//letak tatasusunan baharu dalam parseResults
AddItem: function(){
This.parseResults.push([]);
},
//sort parseResults
SortByAsc: function(){
This.parseResults.sort(function(a,b){
          kembali a.panjang - b.panjang;
});
}
};
//semak params
_langkah = langkah || _langkah;
//isih tatasusunan mengikut asc
_array.sort(function(a,b){
Kembalikan a - b;
});
//alih keluar ulangan data
untuk(i = 0;i<_array.length;i ){
Jika(_array[i] != _array[i 1]){
​ _arrayTemp.push(_array[i]);
}
}
_array = _arrayTemp.slice();
_arrayTemp = [];
//menghuraikan tatasusunan
parseLogic.addItem();
untuk(i = 0;i<_array.length;i ){
If(_array[i] _step == _array[i 1]){
       parseLogic.set(_array[i]);
Teruskan;
}
If(_array[i]-_step == _array[i-1]){
       parseLogic.set(_array[i]);
       parseLogic.addItem();
}
}
//hasil isih
parseLogic.sortByAsc();
//dapatkan jujukan maksimum
Kembalikan parseLogic.get();
}


Arahan panggilan:

Nama kaedah:

maxSequence(array,step)

Perihalan parameter:

Tatasusunan: Tatasusunan untuk dicari. perlu.

langkah: langkah jujukan (kenaikan). Pilihan, lalai ialah 1.

Nilai pulangan:

Kaedah ini tidak akan menukar tatasusunan yang diluluskan, tetapi akan mengembalikan tatasusunan baharu yang mengandungi jujukan terbesar.

Contoh panggilan:

maxSequence([5,7,2,4,0,3,9],1); //kembali [2,3,4,5]

maxSequence([5,7,2,4,0,3,9],2); //kembali [5,7,9]

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn