我遇到了这个问题,我坚持这个.它说,
给定整数的集合N和整数Y,确定是否存在退出于N的绝对差等于y和同时打印这些数字的两个元素.该算法应该花费O(n lg n)时间.证明您的算法在O(n lg n)时间内运行的原因.例如,设N = 3,7,2,1,4,10 y = 1,N中有三对元素,其绝对差为1对1 = | 3 - 2 | = | -1 | = 1对2 = | 3 - 4 | = | -1 | = 1对3 = | 2 -1 | = 1
我在C++中尝试了如下,但它没有处理所有的边界情况,例如如果y = 8,对于上面的例子,它不打印任何东西,但它应该打印(2,10).
vector<int> printPairs(vector<int> N1, vector<int> N2, int y){
int a = 0, b = 0;
vector<int> result;
while (a < N1.size() && b < N2.size()){
if (N1[a] < N2[b]){
result.push_back(N1[a]);
if (abs(N1[a] - N2[b]) == y) …Run Code Online (Sandbox Code Playgroud) 我使用XML-Like格式的文件,如:
<Tables>
<Student>
ID
Roll_Number
Name
</Student>
</Tables>
Run Code Online (Sandbox Code Playgroud)
我已经读了一个字符串中的文件,现在进行解析,我想使用string.IndexOf(string)方法.它适用于结束标签,例如<Student>,<Tables>但它为关闭标签提供了错误的索引,例如</Tables>或</Students>
这是我的代码:
dbFileString.Substring(dbFileString.IndexOf("<Tables>") + "<Tables>".Length, dbFileString.IndexOf("</Tables>"));
Run Code Online (Sandbox Code Playgroud)
请帮忙.