news 2026/3/26 18:16:23

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/3/18 12:24:42

CTF如何选择一个适合自己的方向?

网络安全CTF全方向指南&#xff1a;从Crypto到Web&#xff0c;小白入门必看&#xff08;建议收藏&#xff09; 文章详细介绍了CTF竞赛的五大方向&#xff1a;Crypto密码学、Pwn二进制漏洞挖掘、Web安全、MISC杂项和逆向工程。每个方向阐述了其特点、优势、所需知识储备与工具准…

作者头像 李华
网站建设 2026/3/25 12:35:27

SGMICRO圣邦微 SGM2034-5.0YN3G/TR SOT23 线性稳压器(LDO)

特性工作输入电压范围&#xff1a;1.7V至7.5V固定输出电压&#xff1a;1.2V、1.8V、2.5V、2.8V、3.0V、3.3V、3.6V、3.8V、4.0V、4.5V和5.0V250mA输出电流高输出电压精度&#xff1a;25C时为1.2%超低静态电流&#xff1a;1μA&#xff08;典型值&#xff09;低压差&#xff1a;…

作者头像 李华
网站建设 2026/3/26 7:08:55

20251223给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时使用weston-screenshooter截屏【修改直接编译进IMG固件】

20251223给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时使用weston-screenshooter截屏【修改直接编译进IMG固件】 2025/12/23 19:23缘起&#xff1a;给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】后&#xff0c;需要使用weston-screens…

作者头像 李华
网站建设 2026/3/12 22:38:09

基于51单片机的交通灯控制系统

文章目录一、系统概述二、项目内容和功能介绍三、效果图四 、资料获取一、系统概述 基于51单片机的交通灯控制系统介绍 一、系统设计背景与意义 随着城市化进程加速&#xff0c;交通拥堵问题日益突出。传统交通灯采用固定时序控制&#xff0c;无法根据实时车流量动态调整&…

作者头像 李华
网站建设 2026/3/23 17:28:10

最适合外包交付的 6 个开源无代码与低代码

原文链接&#xff1a;https://www.nocobase.com/cn/blog/6-open-source-no-code-low-code-tools-for-software-agencies 写在开头 外包团队和技术工作室在接项目时&#xff0c;最常面对的问题&#xff1a;客户希望以最快速度上线。 因此很多团队会利用无代码/低代码工具来快…

作者头像 李华
网站建设 2026/3/19 2:02:59

【学前教育专业论文写作模版】乡村振兴背景下农村幼儿园劳动教育实施策略:基于现状调研的问题分析与路径优化研究

内容概要&#xff1a;本文以乡村振兴为背景&#xff0c;探讨了农村幼儿园劳动教育的实施现状、存在问题及优化对策。通过问卷调查与访谈法&#xff0c;研究发现当前农村幼儿园劳动教育存在教师认识不足、组织能力薄弱、活动形式单一、内容缺乏丰富性、保障措施不完善以及家长观…

作者头像 李华