首页 / C# / C#及时查找所有丢失的段
C#及时查找所有丢失的段
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#及时查找所有丢失的段,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1423字,纯文字阅读大概需要3分钟。
内容图文
![C#及时查找所有丢失的段](/upload/InfoBanner/zyjiaocheng/663/92e5a3e966ad485d8fd38e20b3880815.jpg)
我需要在10分钟内找到丢失的航段,我想知道采取的最佳路线.
可以说我有三个时间段.
> 2:30-3:43分钟.
> 4:25-4:59分钟.
> 7:21-9:55分钟.
使用C#,我有整整10:20分钟的时间段.当我已经有3个以上的细分时,我需要找到缺失的细分.
因此,我需要使用C#计算的段如下
> 0:00-2:29分钟.
> 3:44-4:24分钟.
> 5:00-7:20分钟.
> 9:56-10:20分钟.
那么我是否要从上面已经知道的3个细分中计算出这4个细分?
我认为我最好的方法是执行一次for循环,并在几秒钟内一直计数到10:20,并检查3分段中是否存在当前秒.如果不是,则将第二秒钟添加到丢失的段中.
解决方法:
我认为检查每秒是否属于一个间隔不是一个好主意.我认为使用O(n) complexity可以解决此问题,当然可以使用一些.NET类来构造输入,这将使一切变得更加容易.完整的小提琴here.
private static List<Tuple<TimeSpan,TimeSpan>> ComputeMissingTimeSpans(List<Tuple<TimeSpan,TimeSpan>> availableIntervals, TimeSpan minSpan, TimeSpan maxSpan)
{
List<Tuple<TimeSpan,TimeSpan>> missingTime = new List<Tuple<TimeSpan,TimeSpan>>();
if(availableIntervals.Count == 0)
{
missingTime.Add(new Tuple<TimeSpan, TimeSpan>(minSpan, maxSpan));
return missingTime;
}
foreach(var interval in availableIntervals){
if((interval.Item1 - minSpan).TotalSeconds > 1 )
{
missingTime.Add(new Tuple<TimeSpan, TimeSpan>(minSpan, interval.Item1.Add(TimeSpan.FromSeconds(-1))));
}
minSpan = interval.Item2.Add(TimeSpan.FromSeconds(1));
}
if((maxSpan - minSpan).TotalSeconds > 1)
missingTime.Add(new Tuple<TimeSpan, TimeSpan>(minSpan, maxSpan));
return missingTime;
}
您可以轻松地将此功能适应您的需求.
内容总结
以上是互联网集市为您收集整理的C#及时查找所有丢失的段全部内容,希望文章能够帮你解决C#及时查找所有丢失的段所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。