将整数vector转换为对应整数的最高效方法是什么
核心思路
最高效的实现是线性遍历向量的每一位,每一步将当前结果乘以10再加上当前位的数字,时间复杂度O(n)(n为向量长度),空间复杂度O(1),没有额外的字符串转换开销,性能远高于「先转字符串再拼接转整数」的实现方案。
Python 实现
def vector_to_int(vec): res = 0 for num in vec: res = res * 10 + num return res # 测试 print(vector_to_int([1,0,2,4])) # 输出 1024
C++ 实现
#include <vector> #include <iostream> using namespace std; long long vectorToInt(const vector<int>& vec) { long long res = 0; for (int num : vec) { res = res * 10 + num; } return res; } // 测试 int main() { vector<int> vec = {1,0,2,4}; cout << vectorToInt(vec) << endl; // 输出 1024 return 0; }
注:如果向量长度很长超过long long取值范围,可以换用大整数类型处理
Java 实现
public class VectorToInt { public static long vectorToInt(int[] vec) { long res = 0; for (int num : vec) { res = res * 10 + num; } return res; } public static void main(String[] args) { int[] vec = {1,0,2,4}; System.out.println(vectorToInt(vec)); // 输出 1024 } }
内容的提问来源于stack exchange,提问作者21rw
相关产品推荐
相关产品推荐

