วันนี้ฉันพบปัญหาในการค้นหาลำดับย่อยที่เพิ่มขึ้นนานที่สุด หลังจากอ่านมันฉันพยายามใช้มันใน Java ฉันจะไม่อธิบายรายละเอียดเกี่ยวกับลำดับย่อยที่ยาวที่สุดที่ยาวที่สุดที่นี่ คุณสามารถใช้กับ Baidu หรือ Google ต่อไปนี้เป็นรหัสการใช้งาน:
หมายเหตุ: ฟังก์ชั่นที่ใช้ในส่วนของรหัสนี้คือ
(1) แบบสุ่มสร้างอาร์เรย์ที่มี 10 องค์ประกอบจากนั้นส่งออกลำดับที่เพิ่มขึ้นที่ยาวที่สุด (2) ส่งออกความยาวของลำดับที่เพิ่มขึ้นที่ยาวที่สุดซึ่งลงท้ายด้วยองค์ประกอบหนึ่งเป็นความยาว
แนวคิดการใช้งานที่เฉพาะเจาะจงได้แสดงรายละเอียดในความคิดเห็นซึ่งค่อนข้างง่ายดังนั้นฉันจะไม่ทำซ้ำที่นี่
นำเข้า java.util.Arrays; นำเข้า Java.util.random; คลาสสาธารณะ lis {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.out.println ("สร้างอาร์เรย์สุ่ม ... "); lis lis = new lis (); int [] oldArray = lis.randomarray (); สำหรับ (int i = 0; i <oldArray.length; i ++) {system.out.print (oldArray [i]+""); } system.out.println (); System.out.println ("ความยาวของลำดับที่เพิ่มขึ้นยาวที่สุดคือ"); lis.lisget (OldArray); } public int [] randomArray () {random random = new random (); int [] randomArray = new int [10]; สำหรับ (int i = 0; i <10; i ++) {randomArray [i] = random.nextint (10); } return randomArray; } โมฆะสาธารณะ lisget (int [] arrayl) {int [] lislength = new int [arrayl.length]; // ความยาวของลำดับการเพิ่มที่ยาวที่สุดที่ใช้ในการบันทึกองค์ประกอบปัจจุบันเป็นองค์ประกอบที่ใหญ่ที่สุดสำหรับ (int i = 0; i <arrayl.length; i ++) } int max = 1; สำหรับ (int i = 1; i <arrayl.length; i ++) {สำหรับ (int j = 0; j <i; j ++) {ถ้า (arrayl [j] <arrayl [i] && (lislength [j] +1)> lislength [i]) {lislength [i] = lislength [j] +1; } if (สูงสุด <lislength [i]) {// รับความยาวของลำดับที่เพิ่มขึ้นที่ยาวที่สุดในปัจจุบันและตำแหน่งขององค์ประกอบสุดท้ายของ max = lislength [i]; }}} system.out.println (สูงสุด); System.out.println ("ลำดับที่เพิ่มขึ้นที่ยาวที่สุดในตอนท้ายขององค์ประกอบ I-th:"+array.toString (Lislength)); // output array}}ข้างต้นเป็นเนื้อหาทั้งหมดของการใช้งานอย่างง่ายของ Java ลำดับย่อยที่เพิ่มขึ้นยาวที่สุดที่บรรณาธิการนำมาให้คุณ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณและสนับสนุน wulin.com เพิ่มเติม ~