上午做了个笔试,要求解一道in-place删除数组多余内容的算法题,有O(1)的额外空间要求。

完整的描述忘记了。大致的需求如下:

假设有一个有序数组nums = [1, 1, 1, 2, 3, 5, 5, 5],如果数组中的数字出现超过2次,则删除多余的数字。返回删除后的数组长度。

如 nums = [1, 1, 1, 2, 3, 5, 5, 5] 的结果应为nums = [1, 1, 2, 3, 5, 5], 并返回长度6.

虽然没涉及到复杂的结构或逻辑,不过要bare hand写一个bug free的算法还是难到我了。

刚刚凭记忆把卷子上写的代码在电脑上敲了一遍,果然没有通过....

下面是调试通过的代码,不保证是best practice或最简洁,但感觉应该满足题目的要求。时间复杂度不可避免的O(n)了。

def func(a):index = -1 # 有效下标记录count = 0temp = a[0]for i in range(len(a)):if temp == a[i]:count += 1else:temp = a[i]count = 1if count <= 2:index += 1a[index] = a[i]a = a[:index+1]return index + 1if __name__ == '__main__':a = [1,1,1,2,3,4,4,4,5,9,9]length = func(a)a = a[:length] # 尴尬的引用传参,函数外需要额外截断print(a)print(length)

转载于:https://www.cnblogs.com/oDoraemon/p/10740905.html

[面试] 删除多余的数组内容相关推荐

  1. python 删除txt文本指定内容

    删除多余的txt内容,网络上找到的数据集标签和project的目标格式不相符,前面多了一级目录,需要批量删除这个目录,于是写了个循环 原始文本格式: 目标文本格式:(删除第一级目录第一个"/ ...

  2. python爬虫时删除多余标签内的内容remove、remove_tags

    当爬取到内容后,发现有些便签内的内容不是我们想要的,这时只能通过删除多余标签的方法来进行处理 doc = pq(html)doc('.article-t style').remove() 如上是:想要 ...

  3. 编写fun函数判断字符串尾部的*号,若多于指定数量,则删除多余的;否则,不做操作

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p144 7.1.2 上级实训内容 [实训内容14]假定输入的字符串中只包含字母和" * &q ...

  4. java dom4j 去除空行_如何从XML文件中删除多余的空行?

    总之;我在XML文件中生成了很多空行,并且我正在寻找一种方法将它们作为一种倾斜文件的方式来删除它们.我怎样才能做到这一点 ?如何从XML文件中删除多余的空行? 有关详细说明,目前,我有这个XML文件: ...

  5. php两个数组去掉相同的,php如何删除两个数组中相同的数据

    php如何删除两个数组中相同的数据 发布时间:2021-03-12 10:27:42 来源:亿速云 阅读:77 作者:小新 这篇文章给大家分享的是有关php如何删除两个数组中相同的数据的内容.小编觉得 ...

  6. C语言九十四之请编写函数fun(char *str, int n),其功能是:使字符串str的前导*号不能多余n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理。

    1.题目 规定输入的字符串中只包含字母和*号,请编写函数fun(char *str, int n),其功能是:使字符串str的前导*号不能多余n个,若多于n个,则删除多余的*号,若少于或等于n个,则不 ...

  7. php删除网站多余空白页,删除多余空白页的三种方法

    同事老李用word发布一个通知,在最后一页是一个表格,表格刚好一页A4纸大小,最后一页是空白的页面,而且无法通过删除键进行删除.很显然老李的这个问题,是由于表格占用位置过多造成的.那么下面就由学习啦小 ...

  8. php删除二维数组元素_php怎样删除二维数组中的元素

    php怎样删除二维数组中的元素 发布时间:2020-11-03 10:22:40 来源:亿速云 阅读:68 作者:小新 这篇文章主要介绍了php怎样删除二维数组中的元素,具有一定借鉴价值,需要的朋友可 ...

  9. word文档怎么删除多余的空白页?

    在使用Word的过程中,总会遇到各种各样的问题,比如Word文档要怎么删除多余的空白页?如果不删除的话感觉非常别扭还影响Word文档的美观,那具体要怎么删除呢?下面我们就来瞧瞧. 空白页产生的原因一: ...

最新文章

  1. 公司--超级链接跳转和表单提交,删除的表单提交和删除失败的提示信息
  2. PHP安装包中VC9和VC11的含义
  3. python访问数据库oracle_python连接oracle数据库
  4. Tuning SQL via case when statement
  5. 五种方法实现python3-随机生成10位包含数字和字母的密码
  6. 掌握这些PPT技巧,让你的工作效率提高10倍
  7. 【ArcGIS微课1000例】0013:ArcGIS创建色带图例(以GlobeLand30土地覆盖数据为例)
  8. 校友会2019中国大学计算机,校友会2019中国计算机类一流专业排名,清华大学排名第一...
  9. html 全屏显示某个区域,JS实现指定区域的全屏显示功能示例
  10. 将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子
  11. 【Java程序设计】异常处理
  12. Mysql 日期转换
  13. iphone编程,使用代码结束程序
  14. 【C语言数据结构】双向循环链表
  15. 无线网络管理工具wifi hoper在win7上的安装方法及推荐软件inSSIDer
  16. ES slop问题纪录
  17. python如何控制鼠标键盘_Python如何控制鼠标键盘
  18. 为什么易语言程序被360和windows安全中心认作是病毒?
  19. C++算法 | 比较大小
  20. ? 一图看完国内手机市场占有率

热门文章

  1. 会返回两次_毅力号火星车上的这些采样管,十年后将返回地球
  2. python远程linux服务器执行命令_基于使用paramiko执行远程linux主机命令(详解)
  3. oracle sql语句加减,实现四则运算的一条sql语句
  4. 熊猫merge()–合并两个DataFrame对象
  5. kotlin_Kotlin print(),println(),readLine(),Scanner,REPL
  6. VS 工程只生成dll不生成lib的解决方案
  7. 开课吧Java:微服务设计遵循的规约有哪些?
  8. C++基础教程之数据结构
  9. Java基础篇:什么是线程优先级?
  10. AGC002E(AtCoder1999) Candy Piles(博弈论)