【刷题记录-单调数列、找出字符串中第一个匹配项的下标】

文章介绍了两种判断数组是否为单调递增或递减的方法,包括排序比较和遍历比较。同时,提供了两种在字符串中查找子串首次出现下标的解决方案,一种通过遍历,另一种利用内置的find方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单调数列

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

如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。 如果对于所有 i <= j,nums[i]> = nums[j],那么数组 nums 是单调递减的。

当给定的数组 nums 是单调数组时返回 true,否则返回 false。
代码:

#解法一
class Solution:
    def isMonotonic(self, nums: List[int]) -> bool:
        B = sorted(nums)
        return B == nums or B == nums[::-1]

#解法二
class Solution:
    def isMonotonic(self, nums: List[int]) -> bool:
        a = 0
        for i in range(len(nums)-1):
            if nums[i] > nums[i+1]:
                if a > 0:
                    return False
                a = -1
            elif nums[i] < nums[i+1]:
                if a < 0:
                    return False
                a = 1
        else:
            return True

内存和速度:
在这里插入图片描述

找出字符串中第一个匹配项的下标

题目:给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。

#解法一:
class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        a = len(needle)
        for i in range(len(haystack)-a+1):
            if haystack[i:i+a] == needle:
                return i
        else:
            return -1
#解法二
class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        if needle not in haystack:
            return -1
        return haystack.find(needle)

内存和速度:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值