因为i是遍历数组的索引,而k是记录不等于val的元素个数,也就是处理后数组的新长度。题目要求原地修改数组,即只能在原数组上进行操作,不能使用额外的数组空间。因此,我们需要把不等于val的元素覆盖到原数组的前面,然后返回新的长度k。如果直接返回i,那么i最后停留的位置是最后一个不等于val的元素的后一个位置,而不是不等于val的元素的个数。

int removeElementint nums int numsSize int val int k = 0; forint i=0;inumsSize;i++ ifnumsi != val numsk++ = numsi; return k; 为什么不是return i;而是return k;

原文地址: https://www.cveoy.top/t/topic/bhpP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录