刷题碰见了两个类型差不多的题目,现在把他们粘贴出来比较一下
两道题目都是去移除元素,27指的是给定一个元素,去移除数组里面相同的元素;26指的是移除数组里面相同的元素。
27因为相对简单一点,思路是这样的
class Solution {
public int removeElement(int[] nums, int val) {
int index=0;
for(int i=0;i<nums.length;i++){
if(nums[i]!=val){
nums[index++]=nums[i]; //这里的先赋值,后加1
}
}
return index;
}
}
第26是这样的
class Solution {
public int removeElement(int[] nums, int val) {
int index=0; //定义返回的数组元素个数
for(int i=0;i<nums.length;i++){
if(nums[i]!=val){
nums[++index]=nums[i]; //先对index++,然后赋新的值给加完之后的index
}
}
return index; //这里面虽然返回数,但实际上是返回数组,因为平台做了一步封装
}
}