这个题目比较简单,做的挺快的。
cpp
class Solution {
public:
int findFinalValue(vector<int>& nums, int original) {
//1.对数组进行排序
sort(nums.begin(),nums.end());
//2.遍历排序后的数组
for (int num : nums) {
//3.如果当前数字等于original
if (num == original) {
//4.将original翻倍
original = 2 * original;
}
}
//5.返回最终的original值
return original;
}
};
- 排序的时间复杂度 :
sort函数的时间复杂度是 O(N log N),其中 N 是数组的大小。 - 遍历的时间复杂度 :
for循环的时间复杂度是 O(N)。 - 总体时间复杂度 :O(N log N)。