V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
eluotao
V2EX  ›  Python

面试的时候收到一个算法题,头疼,解不出来?

  •  
  •   eluotao · 2021-06-03 11:27:45 +08:00 · 803 次点击
    这是一个创建于 1277 天前的主题,其中的信息可能已经有所发展或是发生改变。
    给一个时间戳:
    [1622684132, 1622340684, 1609467684, 1620269348, 1622170244, 1620183031, 1621997539, 1622084071, 1620097772, 1620211821, 1620125850, 1609499515, 1622375884, 1622290033, 1622031560, 1622557942]

    判断条件如下:
    要求在指定时间范围
    不能在多组结果中出现重复时间 出现重复 以条数多的为准
    有时间在两租数字范围中同时成立时,只取最近的那一组
    要求每组结果 >= 3 条才能成立

    根据这个条件找出以下的结果

    例如: 指定范围 60 分钟 = 3600 秒

    第一步 取出指定时间范围的 list 得到以下结果

    [1622684132, 1622340684, 1609467684]
    [1622340684, 1609467684, 1620269348, 1622170244, 1620183031, 1621997539, 1622084071, 1620097772]
    [1620211821, 1620125850, 1609499515]
    [1609499515, 1622375884, 1622290033, 1622031560]

    第二步 判断重复时间
    发现 第一 第二 是有重复时间 1609467684 的
    所以只取条数最多的 list
    也就是第一条作废 保留第二条

    第三 第四 有重复时间 1609499515
    只保留 第四条

    第三步 如果有重复时间在两组数列条数一样 取时间最近的那一组
    没有此条件的结果 跳过

    第四部 要求结果>= 3 条
    根据这个最终筛选条件

    符合的是

    [1622340684, 1609467684, 1620269348, 1622170244, 1620183031, 1621997539, 1622084071, 1620097772]
    [1609499515, 1622375884, 1622290033, 1622031560]

    输出这两个 list 即可



    有没有算法大佬请教一下 这种题目怎么做?
    eluotao
        1
    eluotao  
    OP
       2021-06-03 12:00:38 +08:00
    补充一下:
    只计算小时 分钟 的相差

    不计算年月日
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:13 · PVG 04:13 · LAX 12:13 · JFK 15:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.