我是靠谱客的博主 紧张老鼠,最近开发中收集的这篇文章主要介绍双指针游戏(leetcode26)题目思路,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目

不另外开空间,使得一个排好顺序的有重复元素的数组变成一个前k个是排好序的无重复元素的数组,k表示非重复元素的个数。

思路

  1. 想要不开设空间 。每发现一个重复元素把整个数组向前移动一位。
  2. 通过一个快指针,一个慢指针。当快指针和慢指针所指的元素不同时,慢指针的值变成当前快指针的值。
    重点在于直接赋值。因为对有效个数之外的数组是没有要求的。
#include <cstdio>
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int n = nums.size();
        if(n == 0)return 0;
        int i = 0;
        for(int j = 1; j < n; j ++)
        {
            if(nums[i] != nums[j])
            {
                nums[++i] = nums[j];
            }
        }
        return i + 1;
    }
};

最后

以上就是紧张老鼠为你收集整理的双指针游戏(leetcode26)题目思路的全部内容,希望文章能够帮你解决双指针游戏(leetcode26)题目思路所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部