zoukankan      html  css  js  c++  java
  • 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,发现在有重复和没重复情况不一样,然后写条件,发现重复的情况不一样也会得到不同情况的长度,然后我就在牛角尖里死钻。。。

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

    唉,早该想到的啊。

    不太正常。

  • 相关阅读:
    go语言关于线程与通道channal
    linux 搭建SVN服务端
    使用mbedtls的使用说明和AES加密方法(原来的PolarSSL)
    清理 Xcode 10 记录
    Windows下修改iTunes备份路径
    Winform窗口自适应
    修改类模板文件
    HashTable
    修改App.config的键和值
    博客园动画效果
  • 原文地址:https://www.cnblogs.com/CJT-blog/p/10587243.html
Copyright © 2011-2022 走看看