Deskripsi pertanyaan
Diberi array yang diurutkan, hapus elemen duplikat dari array, hanya mempertahankan satu elemen duplikat, dan mengembalikan panjang array baru.
Memerlukan:
Jangan mengalokasikan ruang ekstra ke array, Anda harus menggunakan ukuran memori konstanta untuk beroperasi di tempatnya.
Misalnya:
Mengingat array A = [1,1,2], panggilan fungsi Anda harus mengembalikan panjang = 2, dan sekarang menjadi [1,2].
memasuki
Array yang diurutkan, misalnya [1,1,2].
Keluaran
Mengembalikan panjang baru array, misalnya panjang = 2.
Metode penunjuk cepat dan lambat
Atur pointer cepat untuk melintasi array, dan pointer lambat ke bit berikutnya dari elemen non-ulang.
public static int hapusuplicates (int [] nums) {if (nums.length <1) return nums.length; int lambat = 1; untuk (int fast = 1; cepat <nums.length; fast ++) {if (nums [fast]! = nums [lambat - 1]) {nums [lambat ++] = nums [cepat]; }} return lambat;}Demonstrasi Animasi:
Diperpanjang
Menghapus elemen duplikat dari array yang diurutkan, meninggalkan jumlah digit yang ditentukan.
public static int hapusuplateCatesn (int [] nums, int ulangi) {if (nums.length <= ulangi) mengembalikan nums.length; INT INDEX = Ulangi; untuk (int i = ulangi; i <nums.length; i ++) {if (nums [i]! = nums [index - ulangi]) {nums [index ++] = nums [i]; }} return index;}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.