ชื่อต้นฉบับ:
ด้วยลำดับจำนวนเต็มที่ไม่ได้เรียงลำดับค้นหาลำดับที่ยาวที่สุดของตัวเลขติดต่อกัน
ตัวอย่างเช่น:
ให้ [100, 4, 200, 1, 3, 2]
ลำดับที่ยาวที่สุดของตัวเลขติดต่อกันคือ [1, 2, 3, 4]
โซลูชันที่ได้รับจาก Xiaocai:
ฟังก์ชั่น maxequence (อาร์เรย์, ขั้นตอน) {var _array = array.slice (), // clone array_step = 1, _arrayTemp = [], i = 0; var parselogic = {// results containerParseresults: [] ฟังก์ชั่น (n) {this.parseresults [this.parseresults.length-1] .push (n);}, // รับอาเรย์สุดท้ายจาก parseresultsget: function () {return this.parseresults [this.parseresults.length-1];}, // function () {this.parseresults.push ([]);}, // sort parseresultssortbyasc: function () {this.parseresults.sort (ฟังก์ชั่น (a, b) {return a.length - b.length;});}}; _step; // เรียงลำดับอาร์เรย์โดย asc_array.sort (ฟังก์ชั่น (a, b) {return a - b;}); // ลบการทำซ้ำของ datafor (i = 0; i <_array.length; i ++) {ถ้า (_array [i]! = _array [i+1]) _arrayTemp.Slice (); _ arrayTemp = []; // parse arrayparselogic.additem (); สำหรับ (i = 0; i <_array.length; i ++) {ถ้า (_array [i]+_ step == _array [i+1]) {parselogic.set (_array [i]); ดำเนินการต่อ;} ถ้า (_array [i] -_ _ step == _array [i-1]) {parselogic.set (_array [i]); parselogic.additem (); parselogic.get ();}คำแนะนำการโทร:
ชื่อวิธี:
Maxequence (อาร์เรย์, ขั้นตอน)
คำอธิบายพารามิเตอร์:
อาร์เรย์: จะพบอาร์เรย์ จำเป็น.
ขั้นตอน: ขั้นตอนลำดับ (เพิ่มขึ้น) ไม่บังคับเริ่มต้นคือ 1
ค่าส่งคืน:
วิธีนี้ไม่ได้เปลี่ยนอาร์เรย์ที่เข้ามาและส่งคืนอาร์เรย์ใหม่ที่มีลำดับที่ใหญ่ที่สุด
ตัวอย่างการโทร:
Maxequence ([5,7,2,4,0,3,9], 1); // return [2,3,4,5] Maxequence ([5,7,2,4,0,3,9], 2); // return [5,7,9]