大家好,这里是小编的博客频道
小编的博客:就爱学编程
很高兴在
CSDN
这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!!
目录
- 1.消失的数字
- (1)题目描述
- (2)解题思路
- 2.删除数组中的重复项
- (1)题目描述
- (2)解题思路
- 3.移除元素
- (1)题目描述
- (2)解题思路
- 快乐的时光总是短暂,咱们下篇博文再见啦!!!如果小编的文章会对你有帮助的话不要忘了,记得给小编点赞、收藏支持一下,在此非常感谢!!!
废话不多说,我们直接看题。
1.消失的数字
(1)题目描述
(2)解题思路
按位异或
代码实现:
int missingNumber(int* nums, int numsSize) {int sum = 0;for(int i = 0; i < numsSize; i++){sum ^= nums[i];}for(int i = 0; i <= numsSize; i++){sum ^= i;}return sum;
}
2.删除数组中的重复项
(1)题目描述
(2)解题思路
双指针
代码实现:
int removeDuplicates(int* nums, int numsSize) {if(numsSize == 0) return 0;int fast = 0, slow = 0;while(fast < numsSize - 1){if(nums[fast] != nums[fast + 1]){nums[++slow] = nums[++fast];}else{++fast;}}//实际中返回值是slow还是slow+1代值即可验证return slow + 1;
}
3.移除元素
(1)题目描述
(2)解题思路
双指针
代码实现:
int removeElement(int* nums, int numsSize, int val) {//确保快指针全部遍历一次即可int slow = 0, fast = 0;while(fast < numsSize){if(nums[fast] != val){nums[slow++] = nums[fast]; }++fast;}return slow;
}