当前位置: 首页 > news >正文

力扣71~75题

题71(中等):

python代码:

class Solution:def simplifyPath(self, path: str) -> str:#首先根据/分割字符串,再使用栈来遍历存储p_list=path.split('/')p_stack=[]for i in p_list:#如果为空则肯定是//或者///if i=='':continue      #如果为..则s_stack要退一个if i=='..':if p_stack!=[]:p_stack.pop()continue#如果为.则取当前目录(即为无事发生)if i=='.':continuep_stack.append(i)return '/'+'/'.join(p_stack)

题72(中等):

python代码:

class Solution:def minDistance(self, word1: str, word2: str) -> int:#我感觉要使用动态规划m=len(word1)n=len(word2)dp=[[0]*(n+1) for _ in range(m+1)]for i in range(m+1):for j in range(n+1):if i==0:dp[i][j]=jelif j==0:dp[i][j]=ifor i in range(1,m+1):for j in range(1,n+1):if word1[i-1]==word2[j-1]:dp[i][j]=dp[i-1][j-1]else:dp[i][j]=min(dp[i-1][j],dp[i-1][j-1],dp[i][j-1])+1return dp[-1][-1]

题73(中等):

python代码:

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""#先找0在设置row=set()col=set()m=len(matrix)if m==0:returnn=len(matrix[0])if n==0:returnfor i in range(m):for j in range(n):if matrix[i][j]==0:col.add(j)row.add(i)for i in list(row):for j in range(n):matrix[i][j]=0for i in range(m):for j in list(col):matrix[i][j]=0

题74(中等):

python代码

class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:#和每一行最后一个比,如果大于它就肯定在该行或者不存在,小于就往下看m=len(matrix)if m==0:return Falsen=len(matrix[0])if n==0:return Falsefor i in range(m):if target<matrix[i][n-1]:return target in matrix[i]elif target==matrix[i][n-1]:return Trueelse:continuereturn False

题75(中等):

分析:

这题我一开始是想双指针,但是中间的1很麻烦就放弃,用了最朴素的统计0,1,2数量方法,但是后面我学到了使用3指针,

class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""#学到一个3指针法p0,p1,p2=0,0,len(nums)-1while p1<=p2:if nums[p1]==0:#如果0在中间,就往边上丢,p0与p1之间一定是1,所以换来p1也加1nums[p0],nums[p1]=nums[p1],nums[p0]p1+=1p0+=1elif nums[p1]==2:nums[p1],nums[p2]=nums[p2],nums[p1]p2-=1elif nums[p1]==1:p1+=1

http://www.mrgr.cn/news/54656.html

相关文章:

  • 重置时把el-tree树节点选中状态取消
  • Qt编写的modbus模拟器/支持网络和串口以及websocket/支持网络rtu
  • General Purpose I/O Ports and Peripheral I/O Lines (Ports)
  • Qt5.14.2 安装详细教程(图文版)
  • 查找与排序-选择排序
  • 人工智能:塑造未来生活与工作的力量
  • docker容器操作
  • 最近很火的ITIL证书是什么证书?
  • 软硬连接,Linux下的动静态库
  • Nat Comput Sci | 分而治之!基于子任务分解的单细胞扰动人工智能模型 STAMP
  • 洛谷 P1038 [NOIP2003 提高组] 神经网络(拓扑排序)
  • Redis之持久化机制和实现原理
  • C/C++程序员为什么要了解汇编?汇编语言的好处与学习路径详解
  • Python进阶语法
  • Vue request请求拦截 全局拦截Promise后 api请求捕获异常catch
  • day3:管道,解压缩,vim
  • 写一段代码判断素数的函数,从主函数中输出一个整数,判断它是否为素数。
  • ret2reg
  • 分布式缓存的基本概念入门以及如何保证数据一致性
  • Mysql数据库压缩版的卸载、安装及初始化
  • c++ 对象作用域
  • Java 类和对象详解(下)
  • Leetcode 3327. Check if DFS Strings Are Palindromes
  • 【动态规划】【路径问题】下降路经最小和、最小路径和、地下城游戏
  • 15. 三数之和 双指针经典题目
  • 【MySQL】to_date()日期转换