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

LeetCode 每日一题 2025/7/14-2025/7/20

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 7/14 1290. 二进制链表转整数
      • 7/15 3136. 有效单词
      • 7/16 3201. 找出有效子序列的最大长度 I
      • 7/17 3202. 找出有效子序列的最大长度 II
      • 7/18 2163. 删除元素后和的最小差值
      • 7/19 1233. 删除子文件夹
      • 7/20 1948. 删除系统中的重复文件夹


7/14 1290. 二进制链表转整数

遍历每个点

class ListNode(object):def __init__(self, val=0, next=None):self.val = valself.next = next
def getDecimalValue(head):""":type head: Optional[ListNode]:rtype: int"""cur=headans=0while cur:ans = ans*2+cur.valcur=cur.nextreturn ans

7/15 3136. 有效单词

依次判断各个条件

def isValid(word):""":type word: str:rtype: bool"""if len(word)<3:return Falsehasy,hasf=False,Falsefor c in word:if c.isalpha():if c.lower() in 'aeiou':hasy=Trueelse:hasf=Trueelif not c.isdigit():return Falsereturn hasy and hasf

7/16 3201. 找出有效子序列的最大长度 I

有效子序列满足间隔一个的数字奇偶性相同
一共四种情况 全奇 全偶 奇偶 偶奇 依次考虑

def maximumLength(nums):""":type nums: List[int]:rtype: int"""ans=0for p in [[0,0],[1,1],[1,0],[0,1]]:cnt=0for num in nums:if num%2==p[cnt%2]:cnt+=1ans=max(ans,cnt)return ans

7/17 3202. 找出有效子序列的最大长度 II

有效子序列偶数项或奇数项 模k同余
枚举两数相加和的模为m
f[x]表示当前最后一项为x的子序列最长长度

def maximumLength(nums, k):""":type nums: List[int]:type k: int:rtype: int"""ans=0for m in range(k):f=[0]*kfor x in nums:x%=kf[x]=f[m-x]+1ans=max(ans,max(f))return ans

7/18 2163. 删除元素后和的最小差值

计算前缀最小和premin[i] 以及后缀最大和sufmax[i]
答案为premin[i]-sufmax[i+1]
后缀最大和 用最小堆维护最大和
前缀最小和同理

def minimumDifference(nums):""":type nums: List[int]:rtype: int"""import heapqm=len(nums)n=m//3minh=nums[-n:]heapq.heapify(minh)sufmax=[0]*(m-n+1)sufmax[-1]=sum(minh)for i in range(m-n-1,n-1,-1):sufmax[i]=sufmax[i+1]+nums[i]-heapq.heappushpop(minh, nums[i])maxh=[-x for x in nums[:n]]heapq.heapify(maxh)premin=-sum(maxh)ans=premin-sufmax[n]for i in range(n,m-n):premin+=nums[i]+heapq.heappushpop(maxh,-nums[i])ans=min(ans,premin-sufmax[i+1])return ans

7/19 1233. 删除子文件夹

先将folder内排序
字典树
考虑每一个文件路径 end作为结束标签
如果当前路径已经遇到了一个end说明当前路径为子文件夹 无需继续

def removeSubfolders(folder):""":type folder: List[str]:rtype: List[str]"""folder.sort()m = {}for s in folder:l = s[1:].split("/")cur = mend = Truefor cd in l:if cd in cur:if "end" in cur[cd]:end = Falsebreakelse:cur = cur[cd]else:cur[cd]={}cur = cur[cd]if end:cur["end"]=1global ansans = []def func(node,l):global ansfor k,v in node.items():if k=="end":ans.append("/"+"/".join(l))continueelse:func(v,l+[k])func(m,[])return ans

7/20 1948. 删除系统中的重复文件夹

使用construct将路劲序列化 freq[x]记录序列x出现的次数
operate将只出现一次的序列加入到答案中

class Trie:def __init__(self):self.serial = ""self.children = dict()def deleteDuplicateFolder(paths):""":type paths: List[List[str]]:rtype: List[List[str]]"""from collections import Counterroot=Trie()for p in paths:cur=rootfor node in p:if node not in cur.children:cur.children[node]=Trie()cur=cur.children[node]freq=Counter()def construct(node):if not node.children:return v=list()for f,c in node.children.items():construct(c)v.append(f+"("+c.serial+")")v.sort()node.serial="".join(v)freq[node.serial]+=1construct(root)ans=list()path=list()def operate(node):if freq[node.serial]>1:returnif path:ans.append(path[:])for f,c in node.children.items():path.append(f)operate(c)path.pop()operate(root)return ans

http://www.dtcms.com/a/291073.html

相关文章:

  • Mysql(存储过程)
  • 图像编辑开源数据项目
  • 了解 ReAct 框架:语言模型中推理与行动的协同
  • 疯狂星期四文案网第14天运营日记
  • DBSCAN聚类算法
  • OpenAI API(1)补全Responses(Chat Completions)API和记忆Assistants API对比分析
  • 牛客周赛 Round 101(题解的token计算, 76修地铁 ,76选数,76构造,qcjj寄快递,幂中幂plus)
  • 使用pymongo进行MongoDB的回收
  • JAVA高级第七章输入和输出处理(二)
  • 前缀和题目:元素和小于等于阈值的正方形的最大边长
  • PostgreSQL高可用架构Repmgr部署流程
  • 按需搭建web网站
  • 【2025】Vscode Python venv虚拟环境显示“激活终端”成功但是在终端中“并没有激活成功”,pip安装还是会安装到全局环境中的解决方法;
  • CataPro本地安装教程--No GPU--cpu only模式--网络资料整理
  • Android Navigation 组件:简化应用导航的利器
  • [硬件电路-67]:模拟器件 - 高输入阻抗、低输出阻抗本质:最小化能量的汲取,最大化能量传递
  • Dynamics 365 Contact Center是什么
  • NX636NX644美光固态闪存NX663NX665
  • MySQL笔记4
  • 行业实例-国产中望3D曲面建模如何实现电脑精准+协同设计
  • AI绘画生成东汉末年黄忠全身像提示词
  • 第二阶段-第二章—8天Python从入门到精通【itheima】-134节(SQL——DQL——分组聚合)
  • ansible批量部署zabbix客户端
  • 2024年ASOC SCI2区TOP,基于Jaya算法的粒子滤波器用于非线性模型贝叶斯更新,深度解析+性能实测
  • (十九)深入了解 AVFoundation-编辑:使用 AVMutableVideoComposition 实现视频加水印与图层合成(上)——理论篇
  • 【每日算法】专题四_前缀和
  • 算法-比较排序
  • Redis入门教程(一):基本数据类型
  • ppp实验
  • BEVformer个人理解与解读