前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【一天一道Leetcode】单调数列

【一天一道Leetcode】单调数列

作者头像
潘永斌
发布2021-03-09 16:16:06
7920
发布2021-03-09 16:16:06
举报
文章被收录于专栏:看那个码农
本篇推文共计2000个字,阅读时间约3分钟。

01

题目描述

题目描述:

如果数组是单调递增或单调递减的,那么这个数组就是单调的数组。

如果对于所有 i <= j,A[i] <= A[j],

那么数组 A 是单调递增的。

如果对于所有 i<= j,A[i]> = A[j],

那么数组 A 是单调递减的。

当给定的数组 A是单调数组时返回 true,

否则返回 false。

示例:

输入:[1,2,2,3]

输出:true

输入:[6,5,4,4]

输出:true

输入:[1,3,2]

输出:false

02

代码分析

既然需要判断数组是否单调递增或者单调递减

则可以先将原数组进行升序或者降序排序,再将排序后的数组与原数组进行比较,判断是否相等,如果相等则输出true,不相等则输出false。

这里引入sorted()的函数概念

sorted()函数是Python3的内置函数

sorted()函数的主要用法是对所有可迭代的对象进行排序操作。

如下所示:

代码语言:javascript
复制
sorted(iterable, key=None, reverse=False)

iterable:可迭代对象。

key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse:排序规则,reverse= True 降序 , reverse = False 升序(默认)。

sorted()函数的实际用法如下所示:

代码语言:javascript
复制
A=[8,5,5,9,1]
# 默认为升序
sorted(A)=[1,5,5,8,9]
# 此时为降序
sorted(A, reverse = True)=[9,8,5,5,1]

由此可以得到本题的解题代码:

代码语言:javascript
复制
class Solution:
    def isMonotonic(self, A: List[int]) -> bool:
        B=sorted(A)
        C=sorted(A,reverse=True)
        if B==A or C==A:
            return True
        return False

A为输入列表,B为将A进行升序后的列表,C为将A进行降序后的列表。

紧接着一个判断语句,

只要B==A(单调递增)或者C==A(单调递减)

则输出true,否则输出false

我们将代码进行简化:

代码语言:javascript
复制
class Solution:
    def isMonotonic(self, A: List[int]) -> bool:
        return A==sorted(A) or A==sorted(A,reverse=True)

直接将判断语句集成到return语句中,

如果A==sorted(A)

或者A==sorted(A,reverse=True)

语句中一个条件为1,则输出true,否则输出false

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 看那个码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01
  • 02
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档