概述
思路:使用双指针,首先让两个指针同步移动,当val!=nums[fastindex]的时候,slowindex和fastindex是同步移动,这样在后面的时候就可以达到模拟“删除元素”的效果,因为当val==nums[fastindex]的时候,fastindex是移动的,而slowindex是不移动的,两者之间元素就会在val!=nums[fastindex]的时候通过同步移动来“删除”。
class 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;
}
}
最后
以上就是着急墨镜为你收集整理的算法训练|移出元素的全部内容,希望文章能够帮你解决算法训练|移出元素所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复