思路:使用双指针,首先让两个指针同步移动,当val!=nums[fastindex]的时候,slowindex和fastindex是同步移动,这样在后面的时候就可以达到模拟“删除元素”的效果,因为当val==nums[fastindex]的时候,fastindex是移动的,而slowindex是不移动的,两者之间元素就会在val!=nums[fastindex]的时候通过同步移动来“删除”。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14class Solution { public int removeElement(int[] nums, int val) { int slowIndex = 0; for (int fastIndex = 0; fastIndex < nums.length; fastIndex++) { if (val != nums[fastIndex]) { //当val!=nums[fastIndex]的时候,slowIndex和fastIndex是同步移动的 nums[slowIndex++] = nums[fastIndex]; } //当val==nums[fastIndex]的时候,fastIndex移动,但是slowIndex不移动 } return slowIndex; } }
最后
以上就是着急墨镜最近收集整理的关于算法训练|移出元素的全部内容,更多相关算法训练|移出元素内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复