وصف السؤال
بالنظر إلى صفيف مصنّف ، قم بإزالة العناصر المكررة من الصفيف ، واحتفظ بندقية مكررة واحدة فقط ، وإرجاع طول الصفيف الجديد.
يتطلب:
لا تخصص مساحة إضافية للمصفوفة ، يجب عليك استخدام حجم ذاكرة الثابت للعمل في مكانه.
على سبيل المثال:
بالنظر إلى المصفوفة A = [1،1،2] ، يجب إرجاع مكالمة الوظيفة الخاصة بك = 2 ، وتصبح A الآن [1،2].
يدخل
صفيف فرز ، على سبيل المثال [1،1،2].
الإخراج
إرجاع الطول الجديد للمصفوفة ، على سبيل المثال الطول = 2.
طريقة مؤشر سريع وبطيء
اضبط المؤشر السريع على اجتياز الصفيف ، والمؤشر البطيء إلى الجزء التالي من العنصر غير المتكرر.
تم إزالة int int static int leveduplicates (int [] nums) {if (nums.length <1) إرجاع nums.length ؛ البطيء int = 1 ؛ لـ (int fast = 1 ؛ fast <nums.length ؛ fast ++) {if (nums [fast]! = nums [slow - 1]) {nums [slow ++] = nums [fast] ؛ }} العودة بطيئة ؛}مظاهرة الرسوم المتحركة:
ممتد
يزيل العناصر المكررة من الصفيف المرتبة ، تاركًا العدد المحدد من الأرقام.
int static int readeduplicatesn (int [] nums ، int repertn) {if (nums.length <= repertn) return nums.length ؛ int index = REPERT ؛ لـ (int i = repertn ؛ i <nums.length ؛ i ++) {if (nums [i]! = nums [index - repertn]) {nums [index ++] = nums [i] ؛ }} فهرس الإرجاع ؛}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.