题目地址:https://www.hackerrank.com/challenges/minimum-distances/problem?isFullScreen=false

翻译:返回list中相同元素index差值最小值;没有相同则返回-1。例子如下:

难度:Easy

解题

正常做法:双重遍历求解。时间复杂度:O(n^2)

def minimumDistances(a):l = [(i,j) for i in range(len(a)-1) for j in range(1,len(a)) if i != j and a[i] == a[j]]if not l:return -1return min([abs(i-j) for i, j in l]

特殊情况优化:如果数字最多只重复1次。时间复杂度:O(n)

def minimumDistances(a):min_dis = math.inffor i in a:try:dis = abs(a.index(i) - a.index(i, a.index(i) + 1))if dis < min_dis:min_dis = disexcept Exception:dis = math.infreturn -1 if min_dis == math.inf else min_dis

普遍情况优化:相同数字可重复多次。用空间换时间,字典 + 入门DP。时间复杂度:O(n),空间复杂度:O(n)

def minimumDistances(a):d = {}for i in range(len(a)):if a[i] not in d:d[a[i]] = (i, math.inf)else:j, k = d[a[i]]if abs(i-j) < k:d[a[i]] = (j, abs(i-j))rt = min([j for i,j in d.values()])return -1 if rt == math.inf else rt

Python HackerRank 刷题 Minimum Distances相关推荐

  1. Python HackerRank 刷题 Maximum Subarray Sum

    题目地址: https://www.hackerrank.com/challenges/maximum-subarray-sum/problem?isFullScreen=false 简述:在给定正整 ...

  2. Python小屋刷题软件2425道题目分类速查表

    "Python小屋"编程比赛正式开始 Python小屋刷题软件客户端使用说明(视频讲解) Python小屋刷题神器最近升级的新功能介绍 每次录入新题目时都会更新下面的分类表,请注意 ...

  3. python 制作刷题程序

    python 制作刷题程序 本着方便刷题的目的,作者希望一些在电脑上学习的小伙伴能方便记笔记和刷题练习,然后就做出了这个软件,此程序主要通过截图来保存题目和一些知识点,目前几乎完善完毕,由于可能会出现 ...

  4. 温馨提示--Python小屋刷题神器明天暂停使用1天

    号外号外--Python小屋刷题神器上线啦 温馨提示: Python小屋刷题神器已经连续运行3个月,受到广大Python爱好者的喜爱,每天都有很多朋友在平台上做题练习和学习. 马上就期末了,应任课老师 ...

  5. Python小屋刷题神器最近升级的新功能介绍

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年1月第6次印刷,山东省一流本科 ...

  6. Python小屋刷题神器题目分类速查表

    每次录入新题目时都会更新下面的分类表,请注意查看最新信息. 客观题: Python基础知识:1-36 内置函数.运算符:37-271 列表.元组.字典.集合.切片.推导式:272-679 选择结构与循 ...

  7. Python基础刷题录-1

    Python基础刷题录 2020-08-27 1.实现输出1 - 2 + 3 - 4 + 5 - 6 ... + 99的和 2.改变语句的大小写,使其符合英语书写规范 3.利用下划线将列表的每一个元素 ...

  8. python oj刷题网站_程序员常用的刷题网站

    1.Lintcode Lintcode.com--LintCode网站是国内较大的在线编程&测评网站.此网站提供各大IT公司的算法面试题类型,行分门别类,由简单到中等,再到难,便于不同水平的程 ...

  9. python面试刷题app_Python面试的一些心得,与Python练习题分享

    关于基础 项目打算招聘一个自动化运维,主要需求是python.Linux与shell脚本能力.但面试几天发现一些问题: 简历虚假 这个不管哪行,简历含水量大都是普遍存在的,看简历犀利的一比,一面是能力 ...

  10. python基础刷题_数据结构与算法LeetCode刷题(Python)

    参考资料: 一.链表 1.  链表的必备知识要点(包括基础知识.刷题中使用的STL等知识) 2.  链表逆序(LeetCode 92 ,206. Reverse Linked List 1,2) 3. ...

最新文章

  1. Codeforces 1375H Set Merging (分块)
  2. 50 jQuery绑定事件 阻止默认事件发生 内置动画 each data
  3. 阿里如何实现100%容器化镜像化?八年技术演进之路回顾(转)
  4. 老子学不动系列:Vue 3.0 新特性预览
  5. jquery复选框组清空选中的值_jQuery选取所有复选框被选中的值并用Ajax异步提交数据...
  6. python groupby agg_Python数据分析:探索性分析
  7. 记录因安装npcap带来的无线连接上不了网的问题
  8. win7控件无法安装怎么办【系统天地】
  9. RHEL配置网卡vlan tag
  10. atomic的实现原理
  11. 计算机系学生的梦想,编写我们的梦想——北大计算机系学生生活掠影-北京大学网络与信息.ppt...
  12. 《愚公移山》深度解读
  13. cdh cm 大数据系统hadoop快速安装
  14. jQuery 任意公历转为农历
  15. ABeam Insight (德硕)| Smart Conference ——让你的生意跨越语言障碍
  16. win10家庭组(win10家庭组共享打印机)
  17. 【程序人生】互联网岗位分工;互联网开发流程;职责分工
  18. OpenGL3.3透视矩阵原理计算
  19. 24核超级计算机,从CPU内部详解电脑CPU的性能:24核CPU什么样?
  20. 【论文速递】“基于自适应辐射环编码柱状图大尺度和旋转不变性的模板匹配”

热门文章

  1. Excel 入门到精通笔记
  2. Dell电脑插入耳机无效
  3. SAR图像去噪方法研究
  4. 一名赣州车主处理“碰瓷”过程,值得认真学习(转帖)
  5. pandas计算同比环比增长
  6. Java多线程+线程池
  7. PR中我的常用快捷键
  8. matlab矩阵最大值最小值均值,Matlab 处理数据—最小值、最大值、均值、方差
  9. 如何清除Excel2007中的网格线?
  10. python两个下划线怎么打_Python中单下划线与双下划线用法总结