当前位置: 首页 > 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.lryc.cn/news/595542.html

相关文章:

  • Android Studio 的 Gradle 究竟是什么?
  • 力扣刷题 -- 100.相同的树
  • 4.Java创建对象有几种方式?
  • repmgr+pgbouncer实现对业务透明的高可用切换
  • ANSYS 2025 R1软件下载及安装教程|附安装文件
  • 【实战】Dify从0到100进阶--文档解读(10)参数提取HTTP节点
  • 2025年一区SCI-回旋镖气动椭圆优化算法Boomerang Aerodynamic Ellipse-附Matlab免费代码
  • IFN影视官网入口 - 4K影视在线看网站|网页|打不开|下载
  • 【智能协同云图库】智能协同云图库第二期:基于腾讯云 COS 对象存储—开发图片各功能模块
  • next.js刷新页面时二级菜单展开状态判断
  • 234、回文链表
  • lesson20:Python函数的标注
  • CMake与catkin_make的find_package()命令使用说明
  • 基于Vue与CloudBase AI Toolkit的色觉识别Web应用开发报告:VibeCoding新范式实践
  • 14.7 Alpaca格式深度解析:3倍指令准确率提升的LLM微调秘诀
  • 工业仪表识别(一)环境安装
  • 数据结构-哈希表(一)哈希函数、哈希表介绍、优缺点
  • 人工智能之数学基础:事件间的关系
  • Js进阶案例合集
  • doker centos7安装1
  • 大模型中的Actor-Critic机制
  • 直播专用域名租用全解析:开启直播新境界
  • 计算机史前时代:从原始计数到机械曙光
  • 什么是GNN?——聚合、更新与循环
  • 计算机发展史:集成电路时代的微缩革命
  • 2025 最好的Coze入门到精通教程(上)
  • 时序顶会基础创新知识点-小波变换篇上
  • 设计系统搭建:大型 Pad 应用的协同开发解决方案
  • 优测发布IoT云联解决方案,赋能生态应用创新跨端体验!
  • 一文详解REST风格