叨逼叨

默认每天都要刷两道题。
今天目标已完成。

第一题

26. 删除排序数组中的重复项
难度:简单
类型:数组

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

这题其实我之前做过,但是一直提交失败。
经过昨天的那题数组题,我换了一种for in方式。
之前我采用的是下标来定位,用pop来删除重复项。
这次采用了数组内的每一项来单独做对比,用remove来进行删除操作。

class Solution(object):def removeDuplicates(self, nums):""":type nums: List[int]:rtype: int"""length = len(nums)if length > 1: \\这个判定很重要point = nums[0]for i in nums[1:]:if point != i:point = ielse:nums.remove(i)print(len(nums))

其中的if length > 1是后面进行修改的,是必须的判定。
因为可能存在空数组的情况,那么length = 0,不需要删除任何项目。
而当只有一个数组的时候,length = 1,同样不需要删除任何项目。

看了下用时,800ms属于中间位置。

看了下44ms的范例,采用的是下标标记,用了反向的思路。

因为是有序数组,采用了快慢两种指针,当存在不一致的时候,可以进行覆盖,达到删除的目的。

第二题

80. 删除排序数组中的重复项 II
难度:中等
类型:数组

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

和第一题十分相似,但是多了条件,就是数值可以出现两次,这就需要额外的进行计数。

class Solution:def removeDuplicates(self, nums):""":type nums: List[int]:rtype: int"""if len(nums) < 1:return 0point = nums[0]count = 0 for i in nums[1:]:if point != i:point = icount = 0else:count = count + 1if count == 2:nums.remove(i)count = 1return len(nums)

我的思路都是比较粗暴的办法,就是用变量记录当前的对比值,当对比值出现超出2次时候,就进行remove,和第一题比较接近的思路,方法也大致相同。


这题的用时会更少一点,但是也是中间位置。

总结

这两天做的题目都比较相似,而且难度较低,都是数组的题目。
套路比较相似,对python3的删除操作和遍历也有了更深的认识与实践。
后续要开始做更多其他数据结构的题目,不断尝试。

小李飞刀:用python刷题ing....相关推荐

  1. python刷题_小李飞刀:用python刷题ing....

    叨逼叨 默认每天都要刷两道题. 今天目标已完成. 第一题 26. 删除排序数组中的重复项 难度:简单 类型:数组 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数 ...

  2. python刷题软件代码_Python使用docx模块实现刷题功能代码

    起由: 前一阵子想要刷一刷国二Python的题库,千方百计找到题库之后,打开一个个word文档,发现一题一题阅读很麻烦,而且答案就在题目的下面,阅读题目的时候想自己做出题目却又总能不经意看到答案,甚烦 ...

  3. Python 刷题常用语法与数据结构汇总-2022.01.30

    [笔试]python刷题笔记(基础)! https://blog.csdn.net/a_123456598/article/details/105420802 python语法刷题 https://b ...

  4. python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等

    NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...

  5. 【Python刷题篇】Python从0到入门3|循环、条件复习、元组入门、字典入门

    Python从0到入门3目录 前言 Q1:团队分组 Q2:禁止重复注册 Q3:元组-牛客运动会 Q4:字典-遍历字典 Q5:字典-毕业生就业调查 Q6:姓名与学号 总结 前言 - 本期是Python从 ...

  6. 【Python刷题篇】Python从0到入门4|字典复习、函数入门、综合实践

    Python从0到入门3目录 前言 Q1:字典复习-首都 Q2:函数入门-求差 Q3:函数入门-牛牛的朋友 Q4:综合案例:自动售卖饮料机 Q5:综合案例-被8整除的数字 Q6:综合案例-披萨店的订单 ...

  7. python画图、python小游戏、python刷题、python算法、python编程与数学

    python画图系列整理 python画图系列整理-CSDN博客 python游戏入门书籍推荐 python游戏入门书籍推荐_pygame书籍推荐_dllglvzhenfeng的博客-CSDN博客 p ...

  8. Python刷题记录(81-90)

    Python刷题记录(81-90) 题目来源PTA平台 PAT (Basic Level) Practice (中文) @TOC 1081 检查密码 本题要求你帮助某网站的用户注册模块写一个密码合法性 ...

  9. [python刷题模板] 珂朵莉树 ODT (基于支持随机访问的跳表

    [python刷题模板] 珂朵莉树 ODT (基于支持随机访问的跳表) 一. 算法&数据结构 1. 描述 2. 复杂度分析 3. 常见应用 4. 常用优化 二. 模板代码 0. 区间推平(lg ...

最新文章

  1. 你以为border-radius只是圆角吗?【各种角度】
  2. iOS - Swift NSData 数据
  3. 视频 + PPT 下载 | 如何利用数据武器,提升线上金融服务?
  4. Effective C# Item45 : 优先选择强异常安全保证
  5. [读书笔记]大型分布式网站架构设计与实践.分布式缓存
  6. Android之内存机制分析-Android堆和栈
  7. java判断时间区间 隔天_Java初中级程序员面试题宝典
  8. 在vue中操作DOM--this.$nextTick()
  9. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
  10. 搜索算法(二)--DFS/BFS求解炸弹人问题(JAVA )
  11. 《 Oracle 10g-11g XTTS迁移方案》.pdf
  12. 敏捷开发系列学习总结(10)——到底什么是敏捷开发?
  13. vue-devtools安装及使用
  14. 下载zxing的网址
  15. svn sync主从同步学习
  16. 国内自动化测试软件,AutoRunner-国内测试行业专业自动化测试工具成长史
  17. 【税务硕士论文】跨国公司无形资产转让定价税制改革探究(节选)
  18. 技术决胜年----谈谈我2018年的新观念新思想
  19. 为什么大数据与云计算密不可分?
  20. IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解

热门文章

  1. css before after用法_CSS 伪元素基础知识:content 与counter 实用技巧(二)
  2. Unity-Find-Script-References 查找脚本的引用
  3. FOI冬令营 Day 3
  4. mysql之库操作_创建用户_修改用户权限_修改用户密码
  5. CodeForces 11D(状压DP 求图中环的个数)
  6. 关于Hyper-V备份的四大注意事项
  7. 配置SQL Server 2012 AlwaysOn ——step1 建立AD域及DNS配置
  8. BitSet之为什么用long保存信息
  9. HDU 4631 Sad Love Story 平面内最近点对
  10. matlab中gatbx工具箱的添加