要吃宵夜吗 2023-03-01 11:02 采纳率: 40%
浏览 50

删除有序数组中重复元素

代码如下,

img

设置了f和s两个指针,我的想法是设置一个循环让快指针f遍历整个数组nums,如果nums[f]与nums[s]相等,则f++,再与nums[s]对比,如果nums[f]与num[s]不相等,此时s++并且将nums[f]的值复制给nums[s],这样一直到f把nums遍历完。但是为什么代码编译执行后,结果却不对呢?是逻辑上哪里出了问题吗?

  • 写回答

2条回答 默认 最新

  • 元气少女缘结神 2023-03-01 11:27
    关注

    你这里并没有删除元素啊,原来nums有多少个元素,现在仍旧多少。你是想返回重复的该删除的元素的下标吗,那就这样:

    void removeduplicate(vector<int> &inputvec,vector<int> &removeid)
    {
        if(inputvec.size()<2)
            return;
    
        for(int slowid=0;slowid!=inputvec.size();slowid++)
        {
            int fastid=slowid+1;
            while(fastid!=inputvec.size())
            {
                if(inputvec[fastid]==inputvec[slowid])
                {
                    removeid.push_back(fastid);
                    break;
                }
                fastid++;
            }
    
        }
    }
    
    int main()
    {
        vector<int> vec={2,5,2,6,8,12,2,6};
    
        vector<int> removeid;
        removeduplicate(vec,removeid);
    
        for(int id=0;id!=removeid.size();id++)
        {
            cout<<removeid[id]<<" ";
        }
        cout<<endl;
    
        return 0;
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月1日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表