news 2026/5/8 13:27:09

Leetcode刷题日记19(181-190)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Leetcode刷题日记19(181-190)

目录

  • 问题1:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:
  • 问题2:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:
  • 问题3:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:
  • 问题4:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:

问题1:

问题链接:

187. 重复的DNA序列

问题描述:

DNA序列 由一系列核苷酸组成,缩写为'A','C','G''T'.*例如,"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时,识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为10的序列(子字符串)。你可以按 任意顺序 返回答案。

实例:

示例1: 输入:s="AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" 输出:["AAAAACCCCC","CCCCCAAAAA"]示例2: 输入:s="AAAAAAAAAAAAA" 输出:["AAAAAAAAAA"]

代码:

#1.利用哈希表#定义一个哈希表 cnt,用于存储所有长度为 10 的子字符串出现的次数。#遍历字符串 s 的所有长度为 10 的子字符串,对于当前子字符串 t,我们更新其在哈希表中对应的计数。如果 t 的计数为 2,我们就将它加入答案。#遍历结束后,返回答案数组即可。classSolution:deffindRepeatedDnaSequences(self,s:str)->List[str]:cnt=Counter()ans=[]foriinrange(len(s)-10+1):t=s[i:i+10]cnt[t]+=1ifcnt[t]==2:ans.append(t)returnans

问题2:

问题链接:

188. 买卖股票的最佳时机 IV

问题描述:

给你一个整数数组 prices 和一个整数 k ,其中 prices[i]是某支给定的股票在第i天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说,你最多可以买 k 次,卖 k 次。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

实例:

示例1: 输入:k=2,prices=[2,4,1]输出:2解释:在第1(股票价格=2)的时候买入,在第2(股票价格=4)的时候卖出,这笔交易所能获得利润=4-2=2。 示例2: 输入:k=2,prices=[3,2,6,5,0,3]输出:7解释:在第2(股票价格=2)的时候买入,在第3(股票价格=6)的时候卖出,这笔交易所能获得利润=6-2=4。 随后,在第5(股票价格=0)的时候买入,在第6(股票价格=3)的时候卖出,这笔交易所能获得利润=3-0=3

代码:

classSolution:defmaxProfit(self,k:int,prices:List[int])->int:f=[[-inf]*2for_inrange(k+2)]forjinrange(1,k+2):f[j][0]=0forpinprices:forjinrange(k+1,0,-1):f[j][0]=max(f[j][0],f[j][1]+p)f[j][1]=max(f[j][1],f[j-1][0]-p)returnf[-1][0]

问题3:

问题链接:

189. 轮转数组

问题描述:

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

实例:

示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1:[7,1,2,3,4,5,6]向右轮转2:[6,7,1,2,3,4,5]向右轮转3:[5,6,7,1,2,3,4]示例2:输入:nums=[-1,-100,3,99],k=2输出:[3,99,-1,-100]解释:向右轮转1:[99,-1,-100,3]向右轮转2:[3,99,-1,-100]

代码:

classSolution:defrotate(self,nums:List[int],k:int)->None:""" Do not return anything, modify nums in-place instead. """# 第一种:这种利用了一个新的数组,采用的deepcopy,不是简单的复制#时间复杂度O(n),空间复杂度O(n)n=len(nums)ans=deepcopy(nums)foriinrange(n):nums[(i+k)%n]=ans[i]
浅拷贝和深拷贝的区别是:浅拷贝只是将原对象在内存中引用地址拷贝过来了。让新的对象指向这个地址。而深拷贝是将这个对象的所有内容遍历拷贝过来了,相当于跟原来没关系了,所以如果你这时候修改原来对象的值跟他没关系了,不会随之更改。
classSolution:defrotate(self,nums:List[int],k:int)->None:""" Do not return anything, modify nums in-place instead. """#第二种:时间复杂度O(n),空间复杂度O(1)#把一个子数组反转两次,子数组的元素顺序不变。#注:请勿使用切片,会产生额外空间defreverse(i:int,j:int)->None:whilei<j:nums[i],nums[j]=nums[j],nums[i]i+=1j-=1n=len(nums)k%=n reverse(0,n-1)reverse(0,k-1)reverse(k,n-1)#一种思想的解法

问题4:

问题链接:

190. 颠倒二进制位

问题描述:

颠倒给定的32位有符号整数的二进制位。

实例:

示例1: 输入:n=43261596输出:964176192解释: 整数 二进制432615960000001010010100000111101001110096417619200111001011110000010100101000000示例2: 输入:n=2147483644输出:1073741822解释: 整数 二进制214748364401111111111111111111111111111100107374182200111111111111111111111111111110

代码:

classSolution:defreverseBits(self,n:int)->int:#1.循环做法res=0foriinrange(32):#1.res每次右移一位#2.n&1进行与操作,选出最后一维。#3.随后进行或操作,除了0与0才是0,其他都是1res=(res<<1)|(n&1)n>>=1returnres
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 1:37:46

基于51单片机的音乐喷泉设计

摘要 随着人们生活水平的提高和建立绿色城市的向往&#xff0c;音乐喷泉以其独特的魅力和特殊的功能&#xff0c;愈来愈成为休闲娱乐产业中的一项重要产品,音乐喷泉的兴建也越来越多。根据目前音乐喷泉的发展现状&#xff0c;介绍了一个以STC89C52单片机为核心的小型音乐喷泉控…

作者头像 李华
网站建设 2026/4/16 18:18:59

为什么不让程序员直接对接客户?而是通过产品经理…

一、那些年&#xff0c;我们"撞过"的客户南墙 先说个真实故事。 我刚从机械专业转行做嵌入式开发那会&#xff0c;公司接了个工业控制项目。当时团队小&#xff0c;没有专门的产品经理&#xff0c;老板直接让我和另外两个开发跟客户对接需求。 那天会议室里&#…

作者头像 李华
网站建设 2026/5/6 0:14:48

大数据隐私保护技术全解析:脱敏、匿名化、差分隐私哪个更实用?

大数据隐私保护实战:脱敏、匿名化、差分隐私到底怎么选? 副标题:从原理到落地的全面对比,帮你解决数据隐私的"选择困难症" 摘要/引言 在大数据时代,"数据是石油"的说法早已深入人心。但当我们享受数据带来的便利(比如精准推荐、智能医疗)时,数据…

作者头像 李华
网站建设 2026/5/7 5:08:41

Prompt Engineering (提示词)进阶必会:从“瞎聊”到“精准控制”

在AI编程的过程中&#xff0c;在实际真实项目开发过程中&#xff0c;在使用AI工具的时候&#xff0c;你是否觉得AI时而聪明绝顶&#xff0c;时而智商掉线&#xff1f;或者完全变成了傻逼了&#xff1f; 区别往往在于你使用的“手段”与“招式”&#xff0c;学会如何与它&#…

作者头像 李华
网站建设 2026/5/3 23:51:27

【震惊】大模型开发者的福音!一文掌握知识图谱+LLM融合技术,医疗AI应用实战与避坑指南,代码已打包!

摘要 本文深入探讨了大语言模型&#xff08;LLMs&#xff09;在医疗知识图谱&#xff08;KGs&#xff09;补全中的应用与局限&#xff0c;尤其是在疾病与治疗关系推断方面的表现。通过系统评估LLMs生成的治疗映射与现有临床知识的对齐程度&#xff0c;研究揭示了模型在覆盖率、…

作者头像 李华