Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 黑客排名最接近的数字-两个测试用例在使用元组时失败_Algorithm_Sorting_C++11_Data Structures - Fatal编程技术网

Algorithm 黑客排名最接近的数字-两个测试用例在使用元组时失败

Algorithm 黑客排名最接近的数字-两个测试用例在使用元组时失败,algorithm,sorting,c++11,data-structures,Algorithm,Sorting,C++11,Data Structures,下面是我写的代码。它成功地通过了4个测试用例,但在两个测试用例中失败。这是hackerrank中一个众所周知的问题,但我仍然无法找出我的代码在这两个测试用例中失败的原因。请帮我解决这个问题。与问题的链接- #包括 使用名称空间std; typedef元组tt; bool-sortbyasec(常量元组和t1、常量元组和t2) { 返回((get(t1)>TC; 向量arr; 对于(int i=0;i>x; arr.推回(x); } 排序(arr.begin(),arr.end()); 向

下面是我写的代码。它成功地通过了4个测试用例,但在两个测试用例中失败。这是hackerrank中一个众所周知的问题,但我仍然无法找出我的代码在这两个测试用例中失败的原因。请帮我解决这个问题。与问题的链接-

#包括
使用名称空间std;
typedef元组tt;
bool-sortbyasec(常量元组和t1、常量元组和t2)
{    
返回((get(t1)>TC;
向量arr;
对于(int i=0;i>x;
arr.推回(x);
}
排序(arr.begin(),arr.end());
向量t1;
int-diff;

对于(size_t i=0;i我查看了问题陈述并发现:如果有多对,则按升序输出所有对

因此,您的
sortbyasec
需要稍微修改,如下所示:

bool sortbyasec(const tuple <int,int,int> &t1,const tuple <int,int,int> &t2)
{    
      if ( get<2>(t1) == get<2>(t2))
      {
          return ((get<0>(t1) < get<0>(t2)));
      }
      return ((get<2>(t1) < get<2>(t2)) );    
}
bool-sortbyasec(常量元组和t1,常量元组和t2)
{    
if(get(t1)=get(t2))
{
返回((get(t1)
非常感谢。这次修改通过了所有测试用例。我只是一个初学者,需要一些建议,我的代码对这个问题是否足够有效。我在代码中使用元组可以吗?或者我可以做得更好吗?我认为你无法击败
O(nlogn)
解决这个问题的时间到了,不过我相信你可以优化你使用的空间。如果这个答案通过了所有测试用例,那么接受它是礼貌的。
bool sortbyasec(const tuple <int,int,int> &t1,const tuple <int,int,int> &t2)
{    
      if ( get<2>(t1) == get<2>(t2))
      {
          return ((get<0>(t1) < get<0>(t2)));
      }
      return ((get<2>(t1) < get<2>(t2)) );    
}