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

翻译:返回list中任意两元素差值绝对值=k的最大组合数。例子如下:

难度:Medium

解题

正常做法:先输出全部长度为2的组合,再遍历两两求差比较。

from itertools import combinationsdef pairs(k, a):# Write your code heretemp = [i for i in combinations(arr, 2)]r = [ 1 if abs(i[0] - i[1]) == k else 0 for i in temp]return sum(r)

耗时严重无法通过全部case。换个思路,先排序,然后两个指针遍历两两组合,当差值≥k的时候break,并且计数+1。

def pairs(k, a):# Write your code herect = 0a.sort()for i in range(len(a) - 1):for j in range(0, len(a)):if a[j] - a[i] > k:breakelif a[j] - a[i] == k:ct += 1breakreturn ct

通过了一部分case,仍然有部分无法通过。再进一步优化,充分利用排序后的数组,当差值=k时,break之后 j 没必要再从0开始遍历。

def pairs(k, a):# Write your code herect = 0a.sort()st = 1for i in range(len(a) -1 ):for j in range(st, len(a)):if a[j] - a[i] > k:breakelif a[j] - a[i] == k:ct += 1st = j+1breakreturn ct

搞定完事。

Python HackerRank 刷题 Pairs相关推荐

  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. Cesium官方教程8-- 几何体和外观效果
  2. video标签poster属性在安卓微信中不生效问题解决
  3. 自反ACL访问控制列表的应用
  4. 深入分析线程池的实现原理
  5. Java代码中常见技术债务处理之Exception
  6. [Java基础]Collection集合
  7. 【模板】分散层叠算法(P6466)
  8. oracle系统实验,实验1 启动Oracle系统
  9. MCSA / Windows Server 2016 安装,配置和管理 Nano Server
  10. Java中SpringBoot项目集成Easy版支付宝支付
  11. android存储登录用户名密码,AndroidStudio实现账号密码保存功能
  12. python爬取微信公众号network_python如何爬取搜狗微信公众号文章永久链接的思路解析...
  13. 公共数据库介绍~google公共数据
  14. css实现固定的图片比例
  15. Partitioning a graph into balanced connected classes: Formulations,separation and experiments
  16. 面试官:说一下你们线上JVM是如何优化的?一不小心聊了2个小时!!
  17. 第一行代码git上传天气项目遇到问题
  18. RFID技术在图书管理应用中的优势
  19. java 加载shellcode_多阶段加载shellcode
  20. 数据结构与算法分析——第1~2章考试题

热门文章

  1. Android自定义PreferenceScreen的Layout布局,并获取控件
  2. 关于流媒体压缩的问题xvidcore的问题
  3. 可调电阻封装图_干货!17种元器件PCB封装图鉴合集
  4. 计算机办公自动化应用课程,1-《计算机应用基础(办公自动化)》课程标准.doc
  5. 集群资源管理与任务调度系统综述
  6. Win10下 Java环境变量配置
  7. udp push java ddpush_DDPush首页、文档和下载 - 任意门推送 - OSCHINA - 中文开源技术交流社区...
  8. 分享一个自己写的QT小游戏-玛丽奥医生
  9. linux安装monaco字体
  10. CCI指标详解及实战用法