原有一组数据区间段,给定一个区间,判断此区间是否和其他区间相交

本文介绍了一道海豚浏览器笔试题,涉及判断区间是否相交的问题。题目要求不考虑单独的点相交,而是考虑区间整体相交情况。作者建议使用链表作为数据结构,并给出了区间相交的条件及其判断程序。
摘要由CSDN通过智能技术生成

此题为海豚浏览器的一个笔试题,当时做的时候感觉挺难,没想出来,后来考完试回来一想,觉得自己太粗心大意了,既然一个不太难的题都没有想到,追悔莫及。用一句话来表达自己对编程的理解:coding as saying~

例如给定三个区间:(2,4)   (5,6)  (7,9)

然后又输入一个区间 :(3.5,5),则可以断定此区间和上述区间中 (2,4)有相交区间。

在此多说一句,此问题我们不考虑单独的点相交,即认为有一个点相交不是区间相交。

然而输入(4,5)就没有相交的区间。题目要求,给出好的数据结构,那么我们就选择使用链表:

typedef struct node
{
float start;
float end;
struct node *next;
}node,*List;

区间有交集的条件是什么呢,假设当前想判断的区间是(start,end),请看下图:

从上面的图可以知道,给定区间(start,end)中如果start或者end在区间(temp->start,temp->end)中,则说明给定区间和原来的一些区间中的至少一个有相交区间。

下面给出程序:

#include<stdio.h&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值