LeetCode面试系列 第12天:No.977 - 有序数组的平方

上一篇 LeetCode 面试题中,我们分析了一道集合相关的数学题。现在我们再来看一个排序相关的面试题吧~

Leetcode

今天要给大家分析的面试题是 LeetCode 上第 977 号问题,

LeetCode - 977. 有序数组的平方

https://leetcode-cn.com/problems/squares-of-a-sorted-array/

题目描述

给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。

示例 1:

输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]

示例 2:

输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]

提示:

  1. 1 <= A.length <= 10000
  2. -10000 <= A[i] <= 10000
  3. A 已按非递减顺序排序。
  • 题目难度:简单

  • 通过次数:24.5K

  • 提交次数:34.7K

  • 贡献者:LeetCode

  • 相关标签

    • 数组

      https://leetcode-cn.com/tag/array

    • 双指针

      https://leetcode-cn.com/tag/two-pointers

  • 相似题目

    • 合并两个有序数组

      https://leetcode-cn.com/problems/merge-sorted-array

    • 有序转化数组

      https://leetcode-cn.com/problems/sort-transformed-array


解题思路:

如果有办法将数组 A 中的值按绝对值进行递减序排序,那最后只需将排序过的数组中的每个数求个平方依次加入到结果 list 中即可。

恰好 Python 中的 sorted(array, key = abs) 可以实现按绝对值排序,所以这个问题就迎刃而解了。

AC的代码为:

class Solution: def sortedSquares(self, A: List[int]) -> List[int]: B = sorted(A, key = abs) # sort by absolute values res = list() for elem in B: res.append(elem*elem) return res

执行用时: 268 ms, 在所有 python3 提交中击败了 87.52 % 的用户.

Leetcode645

示例代码: https://github.com/JustDoPython/leetcode-python/tree/master/leetcode-977

LeetCode面试系列:

第1天:Leetcode 89 - 格雷码

第2天:No.136 - 只出现一次的数

第3天:No.67 - 二进制数求和

第4天:No.202 - 快乐数

第5天:No.204 - 统计质数

第6天:No.9 - 回文数

第7天:No.13 - 罗马数字转整数

第8天:No.58 - 最后一个单词的长度

第9天:No.345 - 反转字符串中的元音字母

第10天:No.976 - 三角形的最大周长

第11天:No.645 - 错误的集合

(0)

相关推荐

  • ​LeetCode刷题实战238:除自身以外数组的乘积

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战334:递增的三元子序列

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 自学算法?这几个网站和工具你挑一个吧

    学习算法这么些年,从小白到大白,今天给大家推荐几个私藏的自学算法与数据结构的网站和工具. LeetCode 这是一个美国在线编程刷题网站,早几年国外知名IT企业如Facebook.Google等考察算 ...

  • ​LeetCode刷题实战41:缺失的第一个正数

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战215:数组中的第K个最大元素

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • Leetcode面试系列 第1天:Leetcode 89 - 格雷码

    最近,打算花点时间写个 Python 解决 Leetcode 题的系列文章~ 大家是否还记得电影黑客帝国中的数字雨林的场景?事实上,计算机底层数据的存储和运算都是二进制的,因而面试题环节中面试官也经常 ...

  • LeetCode面试系列 第2天:No.136 - 只出现一次的数

    LeetCode面试题题系列的上一篇文章 Leetcode面试系列 第1天:Leetcode 89 - 格雷码 中,我们介绍了 二进制相关 的一个典型题. 今天呢,咱们来聊聊哈希表(字典),这是另一种 ...

  • LeetCode面试系列 第3天:No.67 - 二进制数求和

    大家都知道 LeetCode 中的第一道题是 Two Sum,比较简单.我们今天决定挑一个与之类似,但难度稍大于之的问题 二进制之和来分析,其中涉及到的主要知识是 Python 中的 进制转换,比如后 ...

  • LeetCode面试系列 第4天:No.202 - 快乐数

    或许你不知道的是,Leetcode 中是有很多 数学题 的,本文要解析的题 快乐数 就是其中到一个典型问题,本题将基于数据结构 set 来求解. 今天要给大家分析的面试题是 LeetCode 上第 2 ...

  • LeetCode面试系列 第5天:No.204 - 统计质数

    在上篇算法题的文章中,我们介绍了 LeetCode 中的一道数学题 - 快乐数 .今天,我们来聊聊质数(英文是Prime,也称为素数)相关的面试题.以前很多编程书上会有个经典问题,即判断一个数是否是质 ...

  • LeetCode面试系列 第6天:No.9 - 回文数

    上一篇面试题中,我们使用了 埃拉托斯特尼筛法 去统计给定范围内质数的个数(LeetCode No.204),还是有点烧脑的.今天我们来分析一道相对轻松的字符串面试题吧,恰好大家从Python 100天 ...

  • LeetCode面试系列 第7天:No.13 - 罗马数字转整数

    上一篇 LeetCode 面试题中,我们分析了一道轻松的字符串面试题 - 回文数.今天我们来分析一道将数学和字符串结合起来的的面试题. Leetcode 今天要给大家分析的面试题是 LeetCode ...

  • LeetCode面试系列 第8天:No.58 - 最后一个单词的长度

    上一篇 LeetCode 面试题中,我们分析了一道将数学和字符串结合起来的的面试题,今天我们再来分析了一道轻松的字符串面试题吧~ Leetcode 今天要给大家分析的面试题是 LeetCode 上第 ...

  • LeetCode面试系列 第9天:No.345 - 反转字符串中的元音字母

    上一篇 LeetCode 面试题中,我们分析了一道相对轻松的字符串面试题 - 最后一个单词的长度.今天,我们接着来看另一道字符串的算法题吧. Leet code 今天要给大家分析的面试题是 LeetC ...