Skip to content

脑袋晕晕,到底谁早于谁? #24

Description

@RedCrazyGhost

前言

小伙伴在公司里接到个需求,需要把创建时间和最后一次修改时间落在选定时间区间里的文件捞出来

起初简单一想似乎很容易,但是 LeetCode 简单题战神脑子有那么一瞬察觉到事情没那么简单

思考

由上述需求可知,不知道也可以看下面的思考学习一下,这是个判断两个区间是否存在交集的问题

下面我就把主要会出现的 6种情况都画出来,这样可以直观的看出来交集关系

双时间区间交集情况图

图中的1框5框无法与文件的创建时间和修改时间产生交集,所以只要把这两种情况排除就可以获得所有产生交集的情况,这里把刚好在同一时刻的情况也认为存在交集

结论

有了上述的思考,谁早于谁,谁由晚于谁,感觉脑子晕晕的,写下了如下的伪代码

if (开始时间 早于 创建时间 && 结束时间 早于 创建时间) || (开始时间 晚于 修改时间 && 结束时间 晚于 修改时间) {
    // 不存在交集
} else {
    // 存在交集
}

跑一下测试...成功通过!快乐下班🎉

Metadata

Metadata

Assignees

No one assigned

    Labels

    思考fa-solid fa-question

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions