坚持刷题的第三周(二)

简介: 坚持刷题的第三周(二)

2121-10-26

题目

1.下一个最大数

给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。


请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。


nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。


输入: nums1 = [4,1,2], nums2 = [1,3,4,2].

输出: [-1,3,-1]

解释:

   对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更大的数字,因此输出 -1 。

   对于 num1 中的数字 1 ,第二个数组中数字1右边的下一个较大数字是 3 。

   对于 num1 中的数字 2 ,第二个数组中没有下一个更大的数字,因此输出 -1 。


输入: nums1 = [2,4], nums2 = [1,2,3,4].

输出: [3,-1]

解释:

   对于 num1 中的数字 2 ,第二个数组中的下一个较大数字是 3 。

   对于 num1 中的数字 4 ,第二个数组中没有下一个更大的数字,因此输出 -1 。


提示:


1 <= nums1.length <= nums2.length <= 1000

0 <= nums1[i], nums2[i] <= 104

nums1和nums2中所有整数 互不相同

nums1 中的所有整数同样出现在 nums2 中


2.左转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。


示例 1:


输入: s = "abcdefg", k = 2

输出: "cdefgab"

示例 2:


输入: s = "lrloseumgh", k = 6

输出: "umghlrlose"


限制:


1 <= k < s.length <= 10000


3.最长公共前缀


image.png

4.整数反转


image.png

5.字符串中的唯一的一个字符

image.png


题解

1.下一个最大数

本题可以有两种解法:


1.就是最原始的暴力解法,两个循环就可以出来了,我就不多讲这个了,这个代码我倒是没有提交,我写在本子上面了,我给大家看看。




2.


第二种就是用哈希表和栈的方法:


因为题中说明是不重复的数组,所以我们直接把nums2入栈,且判断栈尾元素是要小于栈里面的元素,否则出栈,并把对应的数字放入哈希表中,最后返回列表!!!




2.左转字符串

这个在python友谊中方法很简单很简单,直接用下标替换就可以,如果学过py的直接看代码就可以看懂了,因为今天有点累了,我就不说太多了!!!


3.最长公共前缀

本题是使用一个移动的变化滑块来写这个题,我们来对每一个做前缀做一个判断,如果符合就直接返回,如果不符合就返已经匹配滑块里面的东西。


4.整数反转

时间问题欠着


5.字符串中的唯一的一个字符

同上


代码

1.下一个最大数


class Solution:
    def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
        stack = []
        res = {}
        for num in reversed(nums2):
            while stack and stack[-1]<num:
                stack.pop()
            res[num] = stack[-1] if stack else -1
            stack.append(num)
        return [res[num] for num in nums1]

2.左转字符串

class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        l = [ i for i in s]
        l[:] = l[n : ] + l[ : n]
        string = ''
        for i in l :
            string  = string +i
        return string

3.最长公共前缀  

class Solution:
    def longestCommonPrefix(self, strs) :
        if len(strs) == 0: return ""
        pre = strs[0]
        strs = strs[1:]
        for i in range(len(strs)):
            count = 0
            if len(pre) < len(strs[i]):
                length = len(pre)
            else:
                length = len(strs[i])
            for j in range(length):
                if strs[i][j] == pre[j]:
                    count += 1
                else:
                    break
            pre = pre[:count]
        return pre

4.整数反转

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        sum = 0
        if x<=0:
                for i,j in enumerate(str(abs(x))):
                 sum += int(j)*(10**i)
                if -2**31<-sum<=2**31-1:
                 return -sum
                else:
                   return 0
        else:
                for i,j in enumerate(str(x)):
                 sum += int(j)*(10**i)
                if -2**31<sum<=2**31-1:
                 return sum
                else:
                   return 0

5.字符串中的唯一的一个字符

class Solution(object):
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        hash_map = dict()
        for index, value in enumerate(s):
            if value in hash_map:
                hash_map[value] += 1
            else:
                hash_map[value] = 1
        for index, value in enumerate(s):
            if hash_map[value] == 1:
                return index
        return -1
目录
相关文章
|
4天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1106 0
|
3天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
511 10
|
13天前
|
人工智能 运维 安全
|
12天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
4天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
301 0
|
11天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
803 23
|
4天前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。