文章目录

  • 941. 有效的山脉数组
  • 977. 有序数组的平方
    • 三级目录

941. 有效的山脉数组

给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。

让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:

  • A.length >= 3
  • 在 0 < i < A.length - 1 条件下,存在 i 使得:
  • A[0] < A[1] < … A[i-1] < A[i]
  • A[i] > A[i+1] > … > A[A.length - 1]

1.

class Solution:def validMountainArray(self, A: List[int]) -> bool:if len(A) < 3:return Falsemax_value = max(A)index = A.index(max_value)if index == 0 or index == len(A)-1:return Falsereturn ( all(A[i] < A[i+1] for i in range(index)) and all(A[j] > A[j+1] for j in range(index, len(A)-1)) )

找最大值,然后判断两边是否分别是递增或递减,注意如果最大值在首尾不满足条件。 300ms, 15MB

2.官方解法

class Solution(object):def validMountainArray(self, A):N = len(A)i = 0# walk upwhile i+1 < N and A[i] < A[i+1]:i += 1# peak can't be first or lastif i == 0 or i == N-1:return False# walk downwhile i+1 < N and A[i] > A[i+1]:i += 1return i == N-1

先判断上行直到最大值,再判断下行,只循环一遍快一点。 248ms, 14.9MB

977. 有序数组的平方

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

1.直接计算并排序

class Solution(object):def sortedSquares(self, A):return sorted(x*x for x in A)

不太明白排序速度为什么会比双指针快呢?272ms, 15.5MB

2.双指针

class Solution:def sortedSquares(self, A: List[int]) -> List[int]:ans = [0]*len(A)left = 0right = len(A)-1for i in range(len(A)-1, -1, -1):if pow(A[left],2) > pow(A[right],2):ans[i] = pow(A[left],2)left += 1else:ans[i] = pow(A[right],2)right -= 1return ans

分别判断首尾再从后往前填入即可。 384ms, 15.6MB

三级目录

从零开始刷Leetcode——数组(941.977)相关推荐

  1. 从零开始刷Leetcode——数组(1.26)

    文章目录 1.两数之和 26.删除排序数组中的重复项 马上要去读研了,作为一个转码的ee学生,刷题还是很必要的.从零开始,希望能坚持下去!打算按照类别和难度慢慢刷,一天两三道题左右,争取明年夏季找实习 ...

  2. 从零开始刷Leetcode——数组(11.15.16.18)

    文章目录 11. 盛最多水的容器 15. 三数之和 16. 最接近的三数之和 18. 四数之和 前800题easy难度想做的已经做完了,之后是medium难度 11. 盛最多水的容器 给你 n 个非负 ...

  3. 从零开始刷Leetcode——数组(122.167.169)

    文章目录 122.买卖股票的最佳时机 II 167.两数之和II 169.多数元素 122.买卖股票的最佳时机 II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计 ...

  4. 从零开始刷Leetcode——数组(896.905.914.922)

    文章目录 896. 单调数列 905. 按奇偶排序数组 914. 卡牌分组 922. 按奇偶排序数组 II 896. 单调数列 如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i &l ...

  5. 从零开始刷Leetcode——数组(830.849.888)

    文章目录 830. 较大分组的位置 849. 到最近的人的最大距离 888. 公平的糖果交换 830. 较大分组的位置 在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组. 例 ...

  6. 从零开始刷Leetcode——数组(746.747)

    文章目录 747. 至少是其他数字两倍的最大数 746. 使用最小花费爬楼梯 747. 至少是其他数字两倍的最大数 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是 ...

  7. 从零开始刷Leetcode——数组(31.33)

    文章目录 31. 下一个排列 33. 搜索旋转排序数组 31. 下一个排列 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重 ...

  8. 从零开始刷Leetcode——数组(697.717.724)

    文章目录 697. 数组的度 717. 1比特与2比特字符 724. 寻找数组的中心索引 697. 数组的度 给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数 ...

  9. 从零开始刷Leetcode——数组(643.665.674)

    文章目录 643. 子数组最大平均数 I 665. 非递减数列 674. 最长连续递增序列 643. 子数组最大平均数 I 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均 ...

最新文章

  1. 散列表查找(哈希表)
  2. eclipse Hibernate
  3. 《信息系统项目管理师软考辅导——3年真题详解与全真模拟》主要创新点、关注点...
  4. 字节跳动面试题:“请你描述下 Spring Bean 的生命周期?”
  5. 苹果笔记本能不能用python_“苹”除了苹果还能组哪些词?苹组词,释义及造句汇总!...
  6. Zabbix-1.8.14 安装
  7. OpenCv平滑与模糊
  8. es进行curl请求时报错:missing authentication token for REST request
  9. linux与信息安全,网络与信息安全系统安全Linux系统安全.ppt
  10. ttys和tty_Linux中tty、pty、/dev/ttySn等概念讲解
  11. 1483. 纪念品分组 输出好忧桑…………
  12. 使用JDK自带的工具keytool生成证书
  13. 给未来的你-李开复在2011级大学新生学习规划讲座上的演讲
  14. 7-2 实验二 银行利息结算
  15. 奇遇网以讨论电脑技术和互联网科技资源
  16. matlab矩阵错位相加,矩阵的旋转和相加——数组实现
  17. 平衡球游戏开发教程(四)--深入了解WP7游戏底层原理
  18. pandas—数据组合
  19. FPGA高速接口设计之SpaceWire——总线协议概述
  20. GIS开发:nginx发布常用数据

热门文章

  1. Python-进阶-装饰器小结
  2. 一张思维导图,让正则表达式不再难懂
  3. oracle数据库性能调优技术--深入理解散列连接执行计划
  4. 2013 8.20 ip地址的计算总结
  5. 移动应用的黄金四分类
  6. (推荐)jQuery性能优化指南
  7. Entity Framework 学习中级篇1—EF支持复杂类型的实现
  8. fiddler和F12的区别
  9. 软件测试:我该坚持在一个人的岗位还是辞职?
  10. 25岁!零基础想转行做软件测试,可以吗?晚是不晚!