LeetCode题解之Squares of a Sorted Array 1、题目描述 2、问题分析 使用过两个计数器。 3、代码 1 class Solution { 2 public: 3 vector<int> sortedSquares(vector<int>& A) { 4 int left = 0, right = A.size() - 1; 5 vector<int> res; 6 whil
Python3:简单粗暴,一句话完成 class Solution: def sortedSquares(self, A: List[int]) -> List[int]: return sorted([i ** 2 for i in A]) C++(使用sort函数): class Solution { public: vector<int> sortedSquares(vector<int>& A) { vector<int> a; for(int i=0; i<A.size(); i++){ ...
以LeetCode 88 Merge sorted array为例,题目要求:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1中,使得 num1 成为一个有序数组。你可以假设 nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。在 nums1 和 nums2 中初始化的元素的数量分别是 m 和 n。 题目分析:算...
[LeetCode] 977. Squares of a Sorted Array 题:https://leetcode.com/problems/squares-of-a-sorted-array/ 题目大意 对于非递减数组A,对所有元素的平方进行排序。 思路 元素的平方 较大的元素 只可能是 A中 很小的(负数)或 A中较大的元素。 于是使用双 指针,指向A 的 首元素 与 末尾元素。 比较...
其他思路 假设有两个指针,分别从头和从尾向中间移动,然后比较左右两个值的绝对值大小,绝对值大的将平方和添加到最左边,一直到两个指针相遇。 class Solution:def sortedSquares(self, A):answer = [0] * len(A)l, r = 0, len(A) - 1while l <= r:left, right = abs(A[l]), abs(A[r])if ...
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100] 示例2: 输入:nums = [-7,-3,2,3,11...
可以设left 和 right pointers,从两边遍历,比较一下两个平方后的数字,把大的那个 放入新建的array的末尾。 具体看code。 Java Solution: Runtime beats 100.00% 完成日期:02/03/2019 关键点:two pointers 1classSolution2{3publicint[] sortedSquares(int[] A)4{5intleft = 0;6intright = A.length - 1...
LeetCode 977 Squares of a Sorted Array 解题报告 题目要求 Given an array of integersAsorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order. 题目分析及思路 题目给出一个整数数组,已经按照非减顺序排列好了。要求返回一个数组,包含的元素...
977. Squares of a Sorted Array 因为A是一个排序数组,且可能存在正负,那么平方最大的数一定在两头。所以使用双指针,同时申请一个数组,从数组的后往前排,每次排的数是两个指针中绝对值较大的那个数。 双指针,时间复杂度是O(n) classSolution {public: ...
977. Squares of a Sorted Array 因为A是一个排序数组,且可能存在正负,那么平方最大的数一定在两头。所以使用双指针,同时申请一个数组,从数组的后往前排,每次排的数是两个指针中绝对值较大的那个数。 双指针,时间复杂度是O(n) classSolution {public: ...