leetcode 896单调数列

题目:
An array is monotonic if it is either monotone increasing or monotone decreasing.

An array A is monotone increasing if for all i <= j, A[i] <= A[j]. An array A is monotone decreasing if for all i <= j, A[i] >= A[j].

Return true if and only if the given array A is monotonic.

Example 1:

Input: [1,2,2,3]
Output: true
Example 2:

Input: [6,5,4,4]
Output: true
Example 3:

Input: [1,3,2]
Output: false
Example 4:

Input: [1,2,4,5]
Output: true
Example 5:

Input: [1,1,1]
Output: true

Note:

1 <= A.length <= 50000
-100000 <= A[i] <= 100000
题解:
python 一行解法
return not {cmp(i,j) for i,j in zip(A,A[1:])}>={1,-1}

这里面用到了集合,python的集合具有以下特性:无序性,确定性,互异性
确定性:给定任何一个元素,该元素属于或者不属于这个集合,二者必居其一,不允许有模棱两可的情况出现
互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次
无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的(当然数学上面可以定义序关系,使得元素之间可以按照序关系进行排序,呃,偏题了,不好意思)
python 集合的运算操作:
假设有两个实数集x,y
**>>> x = set(‘spam’)
>>> y = set([‘h’,‘a’,‘m’])
>>> x, y
(set([‘a’, ‘p’, ‘s’, ‘m’]), set([‘a’, ‘h’, ‘m’]))
集合的运算操作演示如下
>>> x & y # 交集
set([‘a’, ‘m’])

>>> x | y # 并集
set([‘a’, ‘p’, ‘s’, ‘h’, ‘m’])

**>>> x - y # 差集
set([‘p’, ‘s’])
>>> x^y #对称差集,即项在x或y中,但不会同时出现在两个集合中,其结果可表示为x|y-x&y
set([‘h’, ‘s’, ‘p’])

然后就是关系运算了
s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中

s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值