如何检查向量元素是否连续排列?

新手上路,请多包涵

我需要检查我的向量中的元素是否连续排列?

 for(i=1; i<=K; i++)
    if(v[i]=v[i+1]-1)

如果该语句为真,我想返回最大的整数。

前任。 4 5 6 7

 7

原文由 supreme_tg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 739
2 个回答

有一个算法: std::is_sorted

 if (std::is_sorted(v.begin(), v.end()) {
    return v.back(); // the largest element would be the last one
}
else {
    // ??
}

原文由 Barry 发布,翻译遵循 CC BY-SA 3.0 许可协议

bool test(vector<int> v) {
    for(int i = 0; i < v.size()-1; i++)
        if(v[i] > v[i+1])
            return false;
    return true;
}

如果向量是有序的,那么最大的是最后一个,即 v[v.size()-1]

原文由 Paulo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题