//重叠区间数
#define N 2
typedef struct arrange {
int x;
int y;
} Arrange;
//先按左边界排序,若相等再按右边界排序(升序)
int cmp(const void* a1, const void* a2) {
if ((*(const Arrange*) a1).x == (*(const Arrange*) a2).x) {
return (*(const Arrange*) a1).y - (*(const Arrange*) a2).y;
} else {
return (*(const Arrange*) a1).x - (*(const Arrange*) a2).x;
}
}
void printArranges(Arrange* arranges, int len) {
for (int i = 0; i < len; ++i) {
cout << "x: " << arranges[i].x << " y: " << arranges[i].y << endl;
}
}
//最大重叠区间大小
int findMaxOverlap(Arrange* arr, int len, Arrange* result, int resultSize) {
qsort(arr, len, sizeof(Arrange), cmp);
Arrange pivot = arr[0];
int maxOverlap = 0;
for (int i = 1; i < len; ++i) {
//区间不重叠
if (pivot.y < arr[i].x) {
pivot = arr[i];
continue;
} else {
//arr[i]包含在pivot内
if (pivot.y >= arr[i].y) {
if (maxOverlap < arr[i].y - arr[i].x) {
maxOverlap = arr[i].y - arr[i].x;
result[0] = pivot;
result[1] = arr[i];
}
} else {
if (maxOverlap <= pivot.y - arr[i].x) {
maxOverlap = pivot.y - arr[i].x;
result[0] = pivot;
result[1] = arr[i];
}
pivot = arr[i];
}
}
}
return maxOverlap + 1;
}
相关推荐
从零到一:NI USB-8506 LIN通讯的驱动安装与硬件调试全攻略
本文详细介绍了NI USB-8506 LIN通讯设备的驱动安装与硬件调试全流程,包括硬件准备、驱动下载与配置、NI MAX设置及常见问题解决方案。通过实战应用与性能优化技巧,帮助用户快速掌握LIN通讯技术,适用于车载数据记录和自动化测试等场景。
在一维坐标轴上存在许多条线段,用最简单的算法找出重合长度最长得两条线段。
在一维坐标轴上存在许多条线段,用最简单的算法找出重合长度最长得两条线段。 例如,线段A(1,5)、B(2,8)、C(3,9),则B和C的重合长度最长,为5 【测试用例1】 输入:A(1,5)、B(2,8)、C(3,9)输出:5 【测试用例2】 输入:A(1,6)、B(3,5)、C(6,10)、D(1,7)、E(4,8)、F(11,16)输出:5 #include <iostream> using namespace std; int main() { cout<<5; ret
GEE影像重采样实战:从10米到500米,如何用.reduceResolution和.reproject统一尺度?
本文详细介绍了在Google Earth Engine (GEE)平台中,如何利用`.reduceResolution()`和`.reproject()`方法解决多源遥感影像的尺度统一难题。通过实战案例,从哨兵2号10米分辨率影像聚合至MODIS 500米尺度,阐述了聚合规则选择、参数配置及效果验证的全流程,为环境监测、农业分析等领域的跨尺度数据融合提供了关键方法。
【林中雪舟】找出重合长度最长线段
题目描述如下: (对于这类算法题,需要将《算法导论》再学习一遍,同时,将书中所列出的引文也要重新学习一遍) 在一维坐标轴上存在许多条线段,用最简单的算法找出重合长度最长的线段。比如线段A(1,5)、B(2,8)、C(3,9),则B和C的重合长度最长,为5.返回(3,8) 1, 第一种方法是使用动态规划的做法,假设已知有n个点,相应的最长长度为L(n), L(0) = 0; L(1) =...
STM32F103C8T6实战:手把手教你搭建智能火灾报警系统(附MQ-2传感器调试技巧)
本文详细介绍了基于STM32F103C8T6单片机和MQ-2烟雾传感器的智能火灾报警系统搭建过程。从硬件选型、电路设计到软件开发,提供全面的实战指导,特别包含MQ-2传感器调试技巧,帮助开发者快速实现稳定可靠的智能火灾监控系统。
使用阿里天池平台训练YOLO目标检测模型
YOLO算法是一种单阶段目标检测算法,由Joseph Redmon等人于2015年提出。与传统的两阶段检测算法相比,YOLO将目标检测问题转化为回归问题,直接预测边界框的位置和类别概率,大大提高了检测速度。YOLOv1: 首次提出YOLO的核心思想,将图像分割成网格,每个网格预测边界框和类别概率。YOLOv2: 引入了批量归一化、锚框等改进,提高了检测精度。YOLOv3: 采用多尺度预测,增强了对小目标的检测能力。
转载:一个一维数轴上有不同的线段,求重复最长的两个线段
原文连接:http://blog.163.com/wzgmr@126/blog/static/3615443620135305258195/例:a:1~3 b: 2~7 c:2~8 最长重复是b和c像这种问题,一般就从动态规划的角度去思考。将原问题分割成小问题。首先按照线段的起点进行排序,较好的排序算法的时间复杂度是O(nlogn)然后考虑将原问题变为相同结构的子问题。考虑f(n)是
华为OD技术面真题 - JAVA开发 - 1
汇总华为OD技术面八股JAVA八股,高频技术真题并提供详细解答。
面试题6:重叠区间个数
题目:给定多个可能重叠的区间,找出重叠区间的个数。举例 输入:[1,5],[10,15],[5,10],[20,30] 输出:3解法一:常规解法,就是我们一上来,最先想到的方法就是使用暴力破解,直接扫描,先第一个区间开始,看这个区间是不是在后面其他区间里面,两两区间判断是否重叠的方式,用一个数组存放区间是否存在重叠,如果两个区间重叠,比如第一个区间和第五个区间重叠,则把数组下标0,4这...
从零开始学 PyTorch 7天路线图(完整可运行代码版)
本文提供了5天PyTorch入门教程的完整代码,涵盖从基础到实战的核心内容。Day1测试环境并介绍张量基础;Day2讲解常用张量操作;Day3演示自动求导机制;Day4实现完整线性回归模型;Day5构建MNIST手写数字识别全连接网络。所有代码可直接运行,包含GPU检测、梯度计算、模型训练和可视化等关键环节,帮助新手快速掌握PyTorch核心概念和典型应用场景。
SKUA-GOCAD入门教程-第八节 线的创建与编辑7和8
本文介绍了曲线编辑操作的主要功能,包括曲线部分和区域的管理操作。在曲线部分操作方面,详细说明了如何合并、删除、移动和过滤曲线部分,支持精确或带公差的合并方式。在曲线区域操作方面,阐述了保留/删除区域点、移动区域点、保留/删除区域线段等操作。此外还介绍了节点连接功能,包括新增/删除连接、端点连接以及为曲线赋予地质特征的方法。
5.在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。
这种题目见过一些类似的题目。这里整理一下思路。 一位很牛逼的网友写的,点击打开链接。用的是分治法,类似于归并排序。 还有一种动态规划的方法,点击打开链接,思路如下: 假设S[n]表示n条线段中最长重叠距离,最长重叠距离只与两条线段有关,那么考虑两种情况: 1. 最长重叠距离与第n条线段无关,则最长重叠距离存在于前n-1条线段中,即S[n]=S[n-1]; 2. 最长重叠距离与第n条线
开源GIS -- 笔记
基础开发库 数据读写:GDAL/OGR(C/C++) ArcGIS和GE都是使用此工具 投影转换:Proj.4(C/C++) 拓扑计算:JTS(Java),GEOS(C++),Shapely(python) 组件式开发库 GeoTools(Java),DotSpatial(.NET) 空间分析: Scipy(通用科学计算、方程求解), numpy,NextworkX, rPy(统计分析), Scikit-learn,pysal(空间分析) 深度学习: Keras、 tensorflow、 pytor
在一维坐标轴上有n个区间段,求重合区间最长的两个区间段
方程T(N) = aT(N/b) + O(N^k) O(N^lg T(N) =
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
重合区间最长的两个区间段SegmentOverlap
在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。【问题来源于v_JULY_v的博客:http://blog.youkuaiyun.com/v_july_v/article/details/6803368】 第一部分:思路 1. 对N个区间排序,排序的规则为:先按区间的开始点从小到大排,若开始点相同,则再按结束点排 例如:对于区间[1,3],[2,3],[1,4]排序后的结果是:[1,
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
最长重合区间问题
【座右铭】1. 想要成为行家,就必须尝试解决大量的问题; 2. 解决大量问题并不代表能解决所有问题,而是表示解决下一个问题的几率变大了 1. 在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。【问题来源于v_JULY_v的博客:http://blog.youkuaiyun.com/v_july_v/article/details/68033
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
国内IT企业常见面试题
一、算法和数据结构 二、C与C++ 1、类占用字节大小与字节对齐方式 class CBase { }; sizeof(CBase)=?class CBase { public: CBase(void); virtual ~CBase(void); private: int a; char *p; }; sizeof(CBase)=? 三、操作系统
51nod1091线段重叠 贪心
线段线段 X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,10201020和12251225的重叠部分为12201220。 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。 Input 第1行:线段的数量N(2 <= N <= 50000)。 第2 - N + 1行:每行2个数,线...
个人收集的java面试题库
百度历年笔试面试150题 1、用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。 2、用C语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。 分析:由于可以把任何类型的指针赋给void类型的指针,这个函数
嵌入式学习四阶路径:C语言→ARM→Linux→项目实战
嵌入式开发不是通用编程的延伸,而是一套以硬件为中心的技术体系。其核心在于理解代码如何在物理芯片上执行:C语言是直接操作寄存器与内存的底层协议,ARM架构提供了内存管理(MMU)、异常处理和外设映射的真实运行环境,Linux则构建了标准化的硬件抽象与协作框架,最终通过项目实战完成从功能实现到工业交付的闭环。掌握这四个层次的递进关系,才能避开‘会写代码却调不通串口’‘能编译却无法启动内核’等典型陷阱。本文聚焦2024年真实产线技术栈,围绕C语言、ARM、Linux、项目实战四大热词,拆解从裸机驱动到嵌入式Lin
2011名企面试题(自己解答)
题目汇总见:http://blog.youkuaiyun.com/v_july_v/article/details/6803368 1.如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。不知道是不是想得太简单了
从AtCoder ABC 330实战解析算法竞赛入门:二分查找与MEX维护
算法竞赛是提升编程与问题解决能力的重要途径,其核心在于将复杂问题分解为可计算模型,并运用高效的数据结构与算法进行优化。例如,二分查找通过利用数据的有序性,将线性搜索优化为对数级复杂度,是解决最值问题的经典方法。在动态数据集中快速查询最小未出现非负整数(MEX)则需巧妙维护计数与状态,体现了在线算法设计的价值。这些技术在实时系统、游戏开发与数据处理中广泛应用。本文以AtCoder Beginner Contest 330为例,通过具体题目剖析了如何将二分查找与MEX维护等基础算法应用于竞赛实战,帮助读者掌握从
最新关于算法和数据结构的面试十六题 .
五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:这堆桃至少有多
面试题6
#ifndef _MS_6_ #define _MS_6_ #include #include #include #include #include using namespace std; void TestMS_6(); /* 通配符: 1.*:0个或多个字母 2.?:1个任意字母 如果遇到*,如何匹配?1.找到*后面的第一个字母c,从 另一个中找到所有
924



被折叠的 条评论
为什么被折叠?



