واجهت اليوم مشكلة في العثور على أطول التسلسل الفرعي التدريجي. بعد قراءته ، حاولت تنفيذه في جافا. لن أشرح ما هو أطول التسلسل الفرعي التدريجي هنا. يمكنك استخدامه على Baidu أو Google. فيما يلي رمز التنفيذ:
ملاحظة: الوظائف المنفذة في هذا القسم من الكود
(1) قم بتوليد صفيف عشوائيًا مع 10 عناصر ، ثم إخراج أطول متسلسل متزايد (2) يخرج طول الأطول اللاحق التزايدي الذي ينتهي بأحد العناصر كطول
تم عرض أفكار التنفيذ المحددة بالتفصيل في التعليقات ، وهي بسيطة نسبيًا ، لذلك لن أكررها هنا.
استيراد java.util.arrays ؛ استيراد java.util.random ؛ الطبقة العامة lis {public static void main (string [] 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) ؛ } إرجاع عشوائي ؛ } public void lisget (int [] arrayl) {int [] lislength = new int [arrayl.length] ؛ // طول أطول تسلسل تدريجي يستخدم لتسجيل العنصر الحالي كعنصر أكبر لـ (int i = 0 ؛ i <arrayl.length ؛ i ++) {initalize lislength [i] = 1 ؛ } int max = 1 ؛ لـ (int i = 1 ؛ i <arrayl.length ؛ i ++) {for (int j = 0 ؛ j <i ؛ j ++) {if (arrayl [j] <arrayl [i] && (lislength [j] +1)> lislength [i]) } if (max <lislength [i]) {// احصل على طول تسلسل تدريجي أطول الحالي وموضع العنصر الأخير من max = lislength [i] ؛ }}} system.out.println (max) ؛ System.out.println ("أطول متسلسل تدريجي في نهاية العنصر I-th:"+arrays.toString (lislength)) ؛ // صفيف الإخراج}}ما سبق هو المحتوى الكامل للتنفيذ البسيط لأطول جافا الفرعي التزايدي الذي يجلبه لك المحرر. آمل أن يكون ذلك مفيدًا لك ودعم wulin.com أكثر ~