小李飞刀:用python刷题ing....
叨逼叨
默认每天都要刷两道题。
今天目标已完成。
第一题
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....相关推荐
- python刷题_小李飞刀:用python刷题ing....
叨逼叨 默认每天都要刷两道题. 今天目标已完成. 第一题 26. 删除排序数组中的重复项 难度:简单 类型:数组 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数 ...
- python刷题软件代码_Python使用docx模块实现刷题功能代码
起由: 前一阵子想要刷一刷国二Python的题库,千方百计找到题库之后,打开一个个word文档,发现一题一题阅读很麻烦,而且答案就在题目的下面,阅读题目的时候想自己做出题目却又总能不经意看到答案,甚烦 ...
- Python 刷题常用语法与数据结构汇总-2022.01.30
[笔试]python刷题笔记(基础)! https://blog.csdn.net/a_123456598/article/details/105420802 python语法刷题 https://b ...
- 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 ...
- 【Python刷题篇】Python从0到入门3|循环、条件复习、元组入门、字典入门
Python从0到入门3目录 前言 Q1:团队分组 Q2:禁止重复注册 Q3:元组-牛客运动会 Q4:字典-遍历字典 Q5:字典-毕业生就业调查 Q6:姓名与学号 总结 前言 - 本期是Python从 ...
- 【Python刷题篇】Python从0到入门4|字典复习、函数入门、综合实践
Python从0到入门3目录 前言 Q1:字典复习-首都 Q2:函数入门-求差 Q3:函数入门-牛牛的朋友 Q4:综合案例:自动售卖饮料机 Q5:综合案例-被8整除的数字 Q6:综合案例-披萨店的订单 ...
- python画图、python小游戏、python刷题、python算法、python编程与数学
python画图系列整理 python画图系列整理-CSDN博客 python游戏入门书籍推荐 python游戏入门书籍推荐_pygame书籍推荐_dllglvzhenfeng的博客-CSDN博客 p ...
- Python刷题记录(81-90)
Python刷题记录(81-90) 题目来源PTA平台 PAT (Basic Level) Practice (中文) @TOC 1081 检查密码 本题要求你帮助某网站的用户注册模块写一个密码合法性 ...
- [python刷题模板] 珂朵莉树 ODT (基于支持随机访问的跳表
[python刷题模板] 珂朵莉树 ODT (基于支持随机访问的跳表) 一. 算法&数据结构 1. 描述 2. 复杂度分析 3. 常见应用 4. 常用优化 二. 模板代码 0. 区间推平(lg ...
最新文章
- 你以为border-radius只是圆角吗?【各种角度】
- iOS - Swift NSData		数据
- 视频 + PPT 下载 | 如何利用数据武器,提升线上金融服务?
- Effective C# Item45 : 优先选择强异常安全保证
- [读书笔记]大型分布式网站架构设计与实践.分布式缓存
- Android之内存机制分析-Android堆和栈
- java判断时间区间 隔天_Java初中级程序员面试题宝典
- 在vue中操作DOM--this.$nextTick()
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
- 搜索算法(二)--DFS/BFS求解炸弹人问题(JAVA )
- 《 Oracle 10g-11g XTTS迁移方案》.pdf
- 敏捷开发系列学习总结(10)——到底什么是敏捷开发?
- vue-devtools安装及使用
- 下载zxing的网址
- svn sync主从同步学习
- 国内自动化测试软件,AutoRunner-国内测试行业专业自动化测试工具成长史
- 【税务硕士论文】跨国公司无形资产转让定价税制改革探究(节选)
- 技术决胜年----谈谈我2018年的新观念新思想
- 为什么大数据与云计算密不可分?
- IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解
热门文章
- css before after用法_CSS 伪元素基础知识:content 与counter 实用技巧(二)
- Unity-Find-Script-References 查找脚本的引用
- FOI冬令营 Day 3
- mysql之库操作_创建用户_修改用户权限_修改用户密码
- CodeForces 11D(状压DP 求图中环的个数)
- 关于Hyper-V备份的四大注意事项
- 配置SQL Server 2012 AlwaysOn ——step1 建立AD域及DNS配置
- BitSet之为什么用long保存信息
- HDU 4631 Sad Love Story 平面内最近点对
- matlab中gatbx工具箱的添加