打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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 - 错误的集合

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
leetcode - 分割数组的最大值
​LeetCode刷题实战367:有效的完全平方数
LeetCode 912. 排序数组
野路子搞算法 · 让算法可视化《leetcode03.无重复字符的最长子串》
我是如何一步步拿下Google Offer的?
C#刷遍Leetcode面试题系列连载(6):No.372 - 超级次方
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服