描述
Given an array nums and a value val, remove all instances of that value in-place and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
The order of elements can be changed. It doesn’t matter what you leave beyond the new length.
Example 1:
Given nums = [3,2,2,3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.
It doesn’t matter what you leave beyond the returned length.
代码
public class RemoveElement_27 {
public static int removeElement(int[] nums, int val) {
if(nums.length == 0 || nums == null) return 0;
int res = 0;
for(int i = 0; i < nums.length; i++){
if(val != nums[i]){
nums[res++] = nums[i];
}
}
return res;
}
public static void main(String[] args){
int[] myList = {3, 2, 2, 3};
int res = removeElement(myList, 3);
System.out.println(res);
}
}
思考
回顾知识点:
前++是先自加再使用而后++是先使用再自加
i++ 有中间缓存变量, i = i++ 等价于
temp = i;
i = i + 1;
i = temp;
public class TestPlus {
public static void main(String[] args) {
int i = 0;
i = i++;
System.out.println(i);
int j = 0;
j = ++j;
System.out.println(j);
}
}
输出:
0
1
————————此部分参考下述链接————————
原文链接:https://blog.csdn.net/never_cxb/article/details/47359761