我一直在hackerearth练习中尝试这个问题,这需要完成下面的工作。是否可以从每个给定的时间间隔中选择一个数字,而无需重复选择。在线时间的解决方案
问题
给定一个整数n从表示正数序列{0,1,2,3,4,5 ....... N-2,N-1}
我们正在的形式提供米范围(L,R),使得(0 < = L < = N-1)(0 < = R < = N-1)
如果(L < = R) (L,R)表示来自上述序列的数{L,L + 1,L + 2,L + 3 ....... R-1,R}
els e(L,R)表示数字{R,R + 1,R + 2,......,n-2,n-1} & {0,1,2,3 .... L-1 ,L}即数字环绕
例如
n = 5 ie {0,1,2,3,4}
(0,3) signifies {0,1,2,3}
(3,0) signifies {3,4,0}
(3,2) signifies {3,4,0,1,2}
现在我们必须选择从每个范围ONE(只有一个)数而不重复任何选择。我们必须说明是否可以从每个(和每个)范围中选择一个数字而不重复。
例测试用例
n = 5// numbers {0,1,2,3,4}
// ranges m in number //
0 0 ie {0}
1 2 ie {1,2}
2 3 ie {2,3}
4 4 ie {4}
4 0 ie {4,0}
Answer is "NO" it's not possible.
因为不能选择从范围4 0任意数量的,因为如果我们从它选择4我们不可能能够从范围4 4选择,并且如果选择0从它我们将不能够从0 0
我的方法选择 -
1)它可以在O使用recurrsion使用哈希映射检查选择的所有possibilitie从由侧的每个范围和侧进行(N * M)记录我们的选择。
2)我试着按顺序n或m即线性顺序。问题缺乏编辑性的解释。仅在编辑部分提到一个代码,没有任何评论和解释。我无法获得通过所有测试用例并被接受的人的代码线解决方案代码。
我无法理解代码中使用的逻辑/算法,它为什么工作?
请提出线性方法和逻辑背后因为问题有这些限制
1 <= N<= 10^9
1 <= M <= 10^5
0 <= L, R < N
它要求的直链或作为我想nlogn溶液??
在社论中的代码也可以在这里http://ideone.com/5Xb6xw
警告--AFTER找我发现代码使用n和m interchangebly所以我想提的问题输入格式的代码所示。
输入格式
第一行包含测试用例,TC,其次是两个整数N,M-第一个描绘地球上的国家的数量,第二个描述范围的数量女友有给他。如果(X < = Y),则范围覆盖国家[X,X + 1 ... Y],否则范围覆盖[X,X + 1,... N-1,0,1 ...,Y]。
输出格式
打印“YES”,如果它是可以这样做,打印“NO”,如果事实并非如此。