算法:删除排序数组中的重复性
13122256420
619
2024-02-26
  1. 不能使用额外空间
  2. 不考虑数组中超出的空间元素


输入:【1,1,2】 输出:2

输入:【1,1,2,3,3,4,4,4,5】 输出:5


js版

remove_duplicates([0, 0, 1, 2, 3, 3, 4, 5, 5, 5])

function remove_duplicates(arr) {
    console.log(arr)
    let i = 0;
    for (let j = 1; j < arr.length; j++) {
        if (arr[i] !== arr[j]) {
            arr[i + 1] = arr[j]
            i++
        }
    }
    console.log(arr, "arr", i, arr.splice(0, i + 1))
}

go版

arr2 := [...]int{0, 0, 1, 1, 1, 1, 1, 2, 3, 5, 9, 9, 9}
remove_duplicates(arr2)

func remove_duplicates(arr [13]int) {
	fmt.Println(arr, "arr")
	var i = 0
	for j := 1; j < len(arr); j++ {
		if arr[i] != arr[j] {
			arr[i+1] = arr[j]
			i++
		}
	}
	fmt.Println(arr, i, "结果", arr[:i+1])
}

rust版

 let vec2 = vec![0, 0, 1, 1, 1, 2, 3, 6, 5, 40, 5, 6];
 remove_duplicates(vec2)
    
fn remove_duplicates(mut vec2: Vec<i32>) {
    let mut i = 0;

    for j in 1..vec2.len() {
        if vec2[i] != vec2[j] {
            vec2[i + 1] = vec2[j];
            i += 1;
        }
    }
    println!("{:?}", vec2)
}