首页 > 其他 > 详细

27.移除元素

时间:2020-12-08 22:36:11      阅读:24      评论:0      收藏:0      [点我收藏+]

原地移除数组nums中所有等于val的元素,并返回数组的新长度,元素顺序可变,不需考虑数组中超出新长度后面的元素。要求空间复杂度为O(1)。

//第一次尝试:
//此问题使用了双指针的方法进行解决,size定位到等于val的位置,i用来向后遍历每一个元素,如果是val,则i++,如果不等于val,则将这个值放到size的位置,然后size++;
//这样就可以将不等于val的值,依次从数组的首位置向后皮排列;
#include<stdio.h> #include<stdlib.h> int removeElement(int* nums, int numsSize, int val) { int size = 0; for (int i = 0; i < numsSize; i++) { if (nums[i] != val) { nums[size] = nums[i]; size++; } } return size; } int main() { int num[] = { 2,4,9,6,9,8,1 }; int n = 9; int ret = removeElement(num, sizeof(num) / sizeof(num[0]), n); for (int i = 0; i < ret; i++) { printf("%d\n", num[i]); } return 0; }

 

27.移除元素

原文:https://www.cnblogs.com/zhm521/p/14105029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!