LeetCode 每日一题 2025/3/31-2025/4/6

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


目录

      • 3/31 2278. 字母在字符串中的百分比
      • 4/1 2140. 解决智力问题
      • 4/2 2873. 有序三元组中的最大值 I
      • 4/3 2874. 有序三元组中的最大值 II
      • 4/4 1123. 最深叶节点的最近公共祖先
      • 4/5 1863. 找出所有子集的异或总和再求和
      • 4/6 368. 最大整除子集


3/31 2278. 字母在字符串中的百分比

遍历 求出字母个数

def percentageLetter(s, letter):""":type s: str:type letter: str:rtype: int"""num = 0n=len(s)for c in s:if c==letter:num+=1return num*100//n

4/1 2140. 解决智力问题

一眼动归
因为对于某个位置i是否可以解决取决于他前面的问题 所以从后往前遍历更加方便
定义dp[i]为解决i~n之间的问题可以得到的最高分数
dp[i]=points[i]+dp[i+brainpower[i]+1]

def mostPoints(questions):""":type questions: List[List[int]]:rtype: int"""n=len(questions)dp=[0]*(n+1)for i in range(n-1,-1,-1):dp[i]=max(dp[i+1],questions[i][0]+dp[min(n,i+questions[i][1]+1)])return dp[0]

4/2 2873. 有序三元组中的最大值 I

1.遍历 三重循环
2.为了使值最大 对于每个j 要找到它左边的最大值nums[i] 和右边的最大值nums[k]
lmax[j],rmax[j]分别记录j左右的最大值

def maximumTripletValue(nums):""":type nums: List[int]:rtype: int"""cur = 0n=len(nums)for i in range(n-2):for j in range(i+1,n-1):for k in range(j+1,n):cur=max(cur,(nums[i]-nums[j])*nums[k])return curdef maximumTripletValue2(nums):""":type nums: List[int]:rtype: int"""n=len(nums)lmax=[0]*nrmax=[0]*nfor i in range(1,n):lmax[i]=max(lmax[i-1],nums[i-1])rmax[n-1-i]=max(rmax[n-i],nums[n-i])cur=0for j in range(1,n-1):cur=max(cur,(lmax[j]-nums[j])*rmax[j])return cur

4/3 2874. 有序三元组中的最大值 II

数组长度很大不能循环遍历
为了使值最大 对于每个j 要找到它左边的最大值nums[i] 和右边的最大值nums[k]
lmax[j],rmax[j]分别记录j左右的最大值

def maximumTripletValue(nums):""":type nums: List[int]:rtype: int"""n=len(nums)lmax=[0]*nrmax=[0]*nfor i in range(1,n):lmax[i]=max(lmax[i-1],nums[i-1])rmax[n-1-i]=max(rmax[n-i],nums[n-i])cur=0for j in range(1,n-1):cur=max(cur,(lmax[j]-nums[j])*rmax[j])return cur

4/4 1123. 最深叶节点的最近公共祖先

dfs

class TreeNode(object):def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef lcaDeepestLeaves(root):""":type root: Optional[TreeNode]:rtype: Optional[TreeNode]"""global ans,maxdans=Nonemaxd = -1def dfs(node,dep):global ans,maxdif not node:maxd = max(maxd,dep)return depleft = dfs(node.left,dep+1)right = dfs(node.right,dep+1)if left==right==maxd:ans = nodereturn max(left,right)dfs(root,0)return ans

4/5 1863. 找出所有子集的异或总和再求和

遍历

def subsetXORSum(nums):""":type nums: List[int]:rtype: int"""ans=0n=len(nums)for i in range(1<<n):tmp=0for j in range(n):if i&(1<<j):tmp^=nums[j]ans+=tmpreturn ans

4/6 368. 最大整除子集

  1. 遍历
    ans内每个num结尾都一个备选答案
    每一个数 遍历当前备选答案 保留长度最大的一个为当前Num的备选答案
    2.dp
    dp[i] nums[i]最大子集个数
def largestDivisibleSubset(nums):""":type nums: List[int]:rtype: List[int]"""n = len(nums)nums.sort()ans = [[nums[0]]]for i in range(1,n):c = nums[i]ret = []for j in range(len(ans)-1,-1,-1):tmp = ans[j][:]if c%tmp[-1]==0:tmp.append(c)if len(tmp)>len(ret):ret = tmp[:]if not ret:ret = [c]ans.append(ret)ans.sort(key=lambda x: len(x))return ans[-1]def largestDivisibleSubset2(nums):""":type nums: List[int]:rtype: List[int]"""n=len(nums)nums.sort()dp = [1]*nmsize,mval=1,1for i in range(n):for j in range(i):if nums[i]%nums[j]==0 and dp[j]+1>dp[i]:dp[i]=dp[j]+1if dp[i]>msize:msize=dp[i]mval = nums[i]if msize==1:return nums[:1]ret = []for i in range(n-1,-1,-1):if msize==0:return retif dp[i]==msize and mval%nums[i]==0:ret.append(nums[i])mval = nums[i]msize-=1return ret

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/77088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker Compose 常用命令 运行 docker-compose.yaml

Docker Compose 中有两个重要的概念 服务 (service)&#xff1a;一个应用的容器&#xff0c;实际上可以包括若干运行相同镜像的容器实例。 项目 (project)&#xff1a;由一组关联的应用容器组成的一个完整业务单元&#xff0c;在 docker-compose.yml 文件中定义。 为了更方便…

深度学习中的 Batch 机制:从理论到实践的全方位解析

一、Batch 的起源与核心概念 1.1 批量的中文译名解析 Batch 在深度学习领域标准翻译为"批量"或"批次"&#xff0c;指代一次性输入神经网络进行处理的样本集合。这一概念源自统计学中的批量处理思想&#xff0c;在计算机视觉先驱者Yann LeCun于1989年提出…

Unity Internal-ScreenSpaceShadows 分析

一、代码结构 // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)Shader "Hidden/Internal-ScreenSpaceShadows" {Properties {_ShadowMapTexture ("", any) "" {} // 阴影贴图纹理&…

Token+JWT+Redis 实现鉴权机制

TokenJWTRedis 实现鉴权机制 使用 Token、JWT 和 Redis 来实现鉴权机制是一种常见的做法&#xff0c;尤其适用于分布式应用或微服务架构。下面是一个大致的实现思路&#xff1a; 1. Token 和 JWT 概述 Token&#xff1a;通常是一个唯一的字符串&#xff0c;可以用来标识用户…

RPC与其他通信技术的区别,以及RPC的底层原理

1、什么是 RPC&#xff1f; 远程过程调用&#xff08;RPC&#xff09; 是一种协议&#xff0c;它允许程序在不同计算机之间进行通信&#xff0c;让开发者可以像调用本地函数一样发起远程请求。 通过 RPC&#xff0c;开发者无需关注底层网络细节&#xff0c;能够更专注于业务逻…

简洁的 PlantUML 入门教程

评论中太多朋友在问&#xff0c;我的文章中图例如何完成的。 我一直用plantUML,也推荐大家用&#xff0c;下面给出一个简洁的PlantUML教程。 &#x1f331; 什么是 PlantUML&#xff1f; PlantUML 是一个用纯文本语言画图的工具&#xff0c;支持流程图、时序图、用例图、类图、…

互联网三高-高性能之JVM调优

1 运行时数据区 JVM运行时数据区是Java虚拟机管理的内存核心模块&#xff0c;主要分为线程共享和线程私有两部分。 &#xff08;1&#xff09;线程私有 ① 程序计数器&#xff1a;存储当前线程执行字节码指令的地址&#xff0c;用于分支、循环、异常处理等流程控制‌ ② 虚拟机…

浅谈StarRocks 常见问题解析

StarRocks数据库作为高性能分布式分析数据库&#xff0c;其常见问题及解决方案涵盖环境部署、数据操作、系统稳定性、安全管控及生态集成五大核心领域&#xff0c;需确保Linux系统环境、依赖库及环境变量配置严格符合官方要求以避免节点启动失败&#xff0c;数据导入需遵循格式…

P1332 血色先锋队(BFS)

题目背景 巫妖王的天灾军团终于卷土重来&#xff0c;血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团&#xff0c;以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围&#xff0c;现在他们将主力只好聚集了起来&#xff0c;以抵…

大文件上传之断点续传实现方案与原理详解

一、实现原理 文件分块&#xff1a;将大文件切割为固定大小的块&#xff08;如5MB&#xff09; 进度记录&#xff1a;持久化存储已上传分块信息 续传能力&#xff1a;上传中断后根据记录继续上传未完成块 块校验机制&#xff1a;通过哈希值验证块完整性 合并策略&#xff1a;所…

【动手学深度学习】卷积神经网络(CNN)入门

【动手学深度学习】卷积神经网络&#xff08;CNN&#xff09;入门 1&#xff0c;卷积神经网络简介2&#xff0c;卷积层2.1&#xff0c;互相关运算原理2.2&#xff0c;互相关运算实现2.3&#xff0c;实现卷积层 3&#xff0c;卷积层的简单应用&#xff1a;边缘检测3.1&#xff0…

Opencv计算机视觉编程攻略-第十一节 三维重建

此处重点讨论在特定条件下&#xff0c;重建场景的三维结构和相机的三维姿态的一些应用实现。下面是完整投影公式最通用的表示方式。 在上述公式中&#xff0c;可以了解到&#xff0c;真实物体转为平面之后&#xff0c;s系数丢失了&#xff0c;因而无法会的三维坐标&#xff0c;…

大厂不再招测试?软件测试左移开发合理吗?

&#x1f449;目录 1 软件测试发展史 2 测试左移&#xff08;Testing shift left&#xff09; 3 测试右移&#xff08;Testing shift right&#xff09; 4 自动化测试 VS 测试自动化 5 来自 EX 测试的寄语 最近两年&#xff0c;互联网大厂的招聘中&#xff0c;测试工程师岗位似…

windows10下PointNet官方代码Pytorch实现

PointNet模型运行 1.下载源码并安装环境 GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。https://gitcode.com/gh_mirrors/po/pointnet.pyto…

git pull 和 git fetch

关于 git pull 和 git fetch 的区别 1. git fetch 作用&#xff1a;从远程仓库获取最新的分支信息和提交记录&#xff0c;但不会自动合并或修改当前工作目录中的内容。特点&#xff1a; 它只是更新本地的远程分支引用&#xff08;例如 remotes/origin/suyuhan&#xff09;&am…

前端开发中的单引号(‘ ‘)、双引号( )和反引号( `)使用

前端开发中的单引号&#xff08;’ &#xff09;、双引号&#xff08;" "&#xff09;和反引号&#xff08; &#xff09;使用 在前端开发中&#xff0c;单引号&#xff08;’ &#xff09;、双引号&#xff08;" "&#xff09;和反引号&#xff08; &…

程序化广告行业(69/89):DMP与PCP系统核心功能剖析

程序化广告行业&#xff08;69/89&#xff09;&#xff1a;DMP与PCP系统核心功能剖析 在数字化营销浪潮中&#xff0c;程序化广告已成为企业精准触达目标受众的关键手段。作为行业探索者&#xff0c;我深知其中知识的繁杂与重要性。一直以来&#xff0c;都希望能和大家一同学习…

Amodal3R ,南洋理工推出的 3D 生成模型

Amodal3R 是一款先进的条件式 3D 生成模型&#xff0c;能够从部分可见的 2D 物体图像中推断并重建完整的 3D 结构与外观。该模型建立在基础的 3D 生成模型 TRELLIS 之上&#xff0c;通过引入掩码加权多头交叉注意力机制与遮挡感知注意力层&#xff0c;利用遮挡先验知识优化重建…

LLM面试题八

推荐算法工程师面试题 二分类的分类损失函数&#xff1f; 二分类的分类损失函数一般采用交叉熵(Cross Entropy)损失函数&#xff0c;即CE损失函数。二分类问题的CE损失函数可以写成&#xff1a;其中&#xff0c;y是真实标签&#xff0c;p是预测标签&#xff0c;取值为0或1。 …

30天学Java第7天——IO流

概述 基本概念 输入流&#xff1a;从硬盘到内存。&#xff08;输入又叫做 读 read&#xff09;输出流&#xff1a;从内存到硬盘。&#xff08;输出又叫做 写 write&#xff09;字节流&#xff1a;一次读取一个字节。适合非文本数据&#xff0c;它是万能的&#xff0c;啥都能读…