【力扣】每日一题—第26题,删除有序数组中重复项

【力扣】每日一题—第26题,删除有序数组中重复项

题目:

  • 给你一个 非严格递增排列 的数组 nums ,请你[ 原地]删除重复出现的元素,使每个元素 只出现一次,返回删除后数组的新长度。元素的 相对顺序应该保持 一致。然后返回 nums中唯一元素的个数。
    考虑 nums的唯一元素的数量为 k,你需要做以下事情确保你的题解可以被通过:
    - 更改数组 `nums` ,使 `nums` 的前 `k` 个元素包含唯一元素,并按照它们最初在 `nums` 中出现的顺序排列。`nums` 的其余元素与 `nums` 的大小不重要。
    - 返回 `k` 。

    解题思路:

  • 因为他给了判题标准,所以我就将思路移到了原来数组中,判断如果有重复的值,就不赋值,继续判断下一个数是否重复,当脱离重复值之后,进行向前赋值,通过while循环不断判断,直到判断结束,返回特定值,

  • 最终代码

  • int removeDuplicates(int* nums, int numsSize) {
        int i=0,j=1;
        while(--numsSize)
        {
            if(nums[i]==nums[j])
            {
                j++;
            }
            else
            {
                nums[i+1]=nums[j];
                i++;
                j++;
            }
        }
        return i+1;
        for(int j=0;j<i;j++)
        {
            return nums[j];
        }
        
    }

    总结

  • 总的来说,跳过重复值将第一个不相同的值向前赋值。

    再接再励吧!!!!!!!

    脑袋空空。

    如果有更好的方案,请赐教,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值