• leecode第二十六题(删除排序数组中的重复项)


    class Solution {
    public:
        int removeDuplicates(vector<int>& nums) {
            int len=nums.size();
            if(len<=1)
                return len;
            
            int start=0,end=1; 
            
            while(end<=len-1)
            {
                while(nums[start]==nums[end] && nums[end]!=nums[len-1])
                {
                    for(int i=start;i<len-1;i++)
                        nums[i]=nums[i+1];
                }
                start++;
                end++;
            }
            
            int new_len=0;
            while(new_len<len-1 && nums[new_len]!=nums[new_len+1])
                new_len++;
            
            return new_len+1;
        }
    };

    分析:

    这个题,我写了一万年,丢人的事简直数不胜数,被自己智商深深打败。

    思路根本就不清晰!一点都不清晰!啥啊想的那乱七八糟的!

    我一开始想着跳跃式把后面重复的一次复制过来,写到一半想到如果过程中有特多重复的数字,那个数字后续可能会被再次检测出来,后来开始一步一步移,但是就在检测步骤的时候我炸了,我一开始非要用start表示,或者end,发现在有重复和没重复情况不一样,然后写条件,发现重复的情况不一样也会得到不同情况的长度,然后我就在牛角尖里死钻。。。

    然后我正常起来,算了,重新检测一遍不就完了,反正前面循环实现除最后一个数字外无重复的情况。

    唉,早该想到的啊。

    不太正常。

  • 相关阅读:
    20201022-1 每周例行报告
    2020高级软件工程“领跑衫”获奖感言
    20201015-3 每周例行报告
    20201008-1 每周例行报告
    竞拍作业
    20201207-总结-作业
    20201126-1每周例行报告
    20201120-1每周例行报告
    20201112 -1每周例行报告
    20201105-1例行报告
  • 原文地址:https://www.cnblogs.com/CJT-blog/p/10587243.html
Copyright © 2020-2023  润新知