LeetCode编程练习 - Remove Element学习心得

数组值删除技巧
本文介绍了一种在不使用额外空间的情况下从数组中移除特定值的方法,并通过具体示例展示了如何实现这一操作。讨论了常见错误及正确处理方式。

题目:

   Given an array and a value, 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 in place with constant memory.

      The order of elements can be changed. It doesn't matter what you leave beyond the new length.

      Example:

      Given input arraynums =[3,2,2,3],val =3

      Your function should return length = 2, with the first two elements ofnums being 2.

      给定一个数组和一个值,删除该值的所有实例并返回新的长度。元素的顺序可以更改。


思路:

   我的思路,定义一个数组num[]和一个指定值,定义一个变量来表示它的长度,定义一个索引值,然后判断索引值指向的数字是否与指定值相同,若相同则跳出,若不相同则将索引值赋值给变量。

  


    运行程序显示输出为空字符串,在确保思路没有问题的情况下查看解决方案,解决方案中是直接判断二者不相同赋值,思路与我的并无异,只是我的写法稍微啰嗦了一些。我又看了一下我的程序,发现在赋值后并未对变量进行任何处理,也就是说循环完一遍变量i的值仍为0,在赋值后添加i++,运行结果仍为空字符串,我将break语句去掉,在判断相等的情况下不管它,运行结果显示,也就是说当我判断相等的时候break语句直接跳出程序。突然想到break是跳出整个循环,应该使用continue,结束单次循环。

   

      运行结果如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值