leetcode:26

对数组元素进行去重,使得原数组重复元素最多保留1个
限制:
我们不可以额外分配数组,必须保持空间复杂度为O(1)
这个并不难实现:

class Solution(object):def removeDuplicates(self, nums):""":type nums: List[int]:rtype: int"""if len(nums) == 0:return 0k = 0for i in range(1, len(nums)):if nums[k] != nums[i]:k += 1nums[k] = nums[i]return k + 1

我们也可以使用python的特性实现该功能,十分精辟:

class Solution2(object):def removeDuplicates(self, nums):"""利用python属性:type nums: List[int]:rtype: int"""nums[:] = sorted(set(nums))return len(nums)

leetcode 80

对数组元素进行去重,使得原数组重复元素最多保留2个

class Solution(object):"""对数组元素进行去重,使得原数组重复元素最多保留2个"""def removeDuplicates(self, nums):""":type nums: List[int]:rtype: int"""if len(nums) <= 2:return len(nums)i, j, cnt = 1, 1, 1while j < len(nums):if nums[j] != nums[j - 1]:cnt = 1nums[i] = nums[j]i += 1else:if cnt < 2:nums[i] = nums[j]i += 1cnt += 1j += 1return idef removeDuplicates2(self, nums):"""very short code:param nums::return:"""i = 0for n in nums:if i < 2 or n > nums[i - 2]:nums[i] = ni += 1return i

问题来了:如果使得原数组重复元素最多保留k个

class Solution1(object):"""对数组元素进行去重,使得原数组重复元素最多保留k个"""def removeDuplicates(self, nums, k):""":type nums: List[int]:rtype: int"""if len(nums) <= k:return len(nums)i, j, cnt = 1, 1, 1while j < len(nums):if nums[j] != nums[j - 1]:cnt = 1nums[i] = nums[j]i += 1else:if cnt < k:nums[i] = nums[j]i += 1cnt += 1j += 1return idef removeDuplicates2(self, nums, k):"""very short code:param nums::return:"""i = 0for n in nums:if i < k or n > nums[i - k]:nums[i] = ni += 1return i

leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素相关推荐

  1. LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] c++

    LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] <c++> 给出排序好的 ...

  2. 从Ruby中删除数组中的重复元素

    本文翻译自:Remove duplicate elements from array in Ruby I have a Ruby array which contains duplicate elem ...

  3. VB 删除数组中的重复元素

    VB 删除数组中的重复元素,当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除.并且返回结果数组. 以下这个函数只支持一维数组. Function Array_unique(Arr As V ...

  4. 删除数组中的重复元素

    删除数组中的重复元素 给定一维整型数组array(数组大小不超过100),如果数组中的某个元素与排在它之后的元素重复,则对其进行删除,直到数组中没有重复元素为止.保证剩余元素的相对次序保持不变,打印删 ...

  5. 复习删除数组中的重复元素

    //如何删除数组中的重复元素 #include<stdio.h> int main(){     int n;     scanf("%d",&n);      ...

  6. Leetcode OJ: Remove Duplicates from Sorted Array I/II

    删除排序数组重复元素,先来个简单的. Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates i ...

  7. LeetCode 80. Remove Duplicates from Sorted Array II

    80. Remove Duplicates from Sorted Array II My Submissions QuestionEditorial Solution Total Accepted: ...

  8. LeetCode 26. Remove Duplicates from Sorted Array

    题目: Given a sorted array, remove the duplicates in place such that each element appear only once and ...

  9. 【leetcode】Remove Duplicates from Sorted Array

    题目:Given a sorted array, remove the duplicates in place such that each element appear only once and ...

最新文章

  1. 黄聪:IE6下用控制图片最大显示尺寸
  2. SSH 用 top 命令查看 CPU 使用率
  3. Attachments failing with invalid id (Bugtraker.net)
  4. java list 分组_Java 将List中的实体类按照某个字段进行分组并存
  5. 【POJ - 3125 】Printer Queue(模拟,队列+优先队列,STL)
  6. 【渝粤教育】国家开放大学2018年春季 7392-21FMatlab语言及其应用 参考试题
  7. EDA技术及应用实验2运行结果截图
  8. UC3842好坏的判断方法
  9. 免费下载高清可商用的图片网站(整理集合)
  10. python编程计算圆面积和体积_计算sph体积和表面积的面向对象Python程序
  11. 推荐给你三个知识星球助你选对人生
  12. Linux/Android之perf追内存泄漏工具(api级别)(一百)
  13. 毕业论文写作中致谢词的常见写法及优秀范文
  14. virtualbox出现failed to attach usb,VERR_PDM_NO_USB_PORTS问题解决
  15. php的表达爱意的一句代码,含蓄表达爱意的爱情诗句(70条)
  16. 苹果一项“杀手锏”过审,“智能穿戴+大健康”领域风云再起
  17. 【电力电子技术DC-AC】电流跟踪PWM控制三相逆变器的simulink仿真
  18. Python一维列矩阵转换成行矩阵
  19. BIOS知识大全(转)
  20. 参赛,挑战杯省决赛 ,中国创翼”创业创新大赛具体模板项目计划书

热门文章

  1. 前来推荐一本比较喜欢的读物——《浪潮之巅》
  2. Python+OpenCV 图像处理系列(4)—— 图像像素的读写、算术运算、逻辑运算及像素的统计
  3. 【Springboot】日志
  4. Nignx集成fastDFS后访问Nginx一直在加载中解决
  5. Java集合之并发容器
  6. LeetCode简单题之汇总区间
  7. 如何将自定义代码生成TVM
  8. 如何写新的Python OP
  9. Yolov3Yolov4网络结构与源码分析
  10. 单目摄像头标定与测距