算法训练day1

48 阅读1分钟

有序数组的平方

按照非递减顺序排序的整数数组nums 返回每个数字的平方组成的新数组,要求也按照非递减顺序

解法: 增加一个新数组,然后利用两个指针来进行比较,如果是i大的话,就从后往前加入新的数组中,即在比较中进行排序的思想

自己的难点:第一天对c++的标准啥的忘了 例如数组用的vector和cout输出要用#include 等

一直纠结于时间复杂度要为O(n),忘了空间可以进行

代码: vector sortedSquares(vector& nums) { vector result(nums.size(), 0); int k = nums.size() - 1; for (int i = 0, j = nums.size() - 1; i < j;) { if (pow(nums[i], 2) < pow(nums[j], 2)) { result[k--] = pow(nums[j--], 2); } else { result[k--] = pow(nums[i++], 2); } } return result;

}