加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

LintCode(101)删除排序数组中的重复数字 II

发布时间:2020-12-13 21:08:50 所属栏目:PHP教程 来源:网络整理
导读:题目 跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 您在真实的面试中是不是遇到过这个题? Yes 样例 给出数组A = [1,1,2,3] ,你的函数应当返回长度5,此时A= [1,3] 。 分析 与上题思路相同,只需要增加1个记录元素出现次数的变量便可,限

题目

跟进“删除重复数字”:

如果可以允许出现两次重复将如何处理?


样例

给出数组A =[1,1,2,3],你的函数应当返回长度5,此时A=[1,3]

分析

与上题思路相同,只需要增加1个记录元素出现次数的变量便可,限制最多出现2次。

Python代码

class Solution: """ @param A: a list of integers @return an integer """ def removeDuplicates(self,A): # write your code here if len(A) == 0: return 0 times = 1 k = 0 for i in range(1,len(A)): if A[i] != A[k]: k += 1 A[k] = A[i] times = 1 else: if times >= 2: continue else: k += 1 A[k] = A[i] times += 1 del A[k+1:len(A)] return len(A)
GitHub -- Python代码

C++代码

/* 101 删除排序数组中的重复数字 II 跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 您在真实的面试中是不是遇到过这个题? Yes 样例 给出数组A =[1,3],你的函数应当返回长度5,此时A=[1,3]。 */ class Solution { public: /** * @param A: a list of integers * @return : return an integer */ int removeDuplicates(vector<int> &nums) { // write your code here if(nums.empty()) { return 0; }//if int n = nums.size(),k=0,times=1; for(int i=1; i<n; ++i) { if(nums[i] != nums[k]) { nums[++k] = nums[i]; times = 1; }else if(nums[i] == nums[k]){ if(times >= 2) { continue; }else{ nums[++k] = nums[i]; ++times; }//else }//elif }//for nums.resize(k+1); return k+1; } };
GitHub -- C++代码



(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读