LeetCode 每日一题 2025/4/28-2025/5/4

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


目录

      • 4/28 2302. 统计得分小于 K 的子数组数目
      • 4/29 2962. 统计最大元素出现至少 K 次的子数组
      • 4/30 1295. 统计位数为偶数的数字
      • 5/1 2071. 你可以安排的最多任务数目
      • 5/2 838. 推多米诺
      • 5/3 1007. 行相等的最少多米诺旋转
      • 5/4 1128. 等价多米诺骨牌对的数量


4/28 2302. 统计得分小于 K 的子数组数目

滑动窗口 固定右侧端点r
找到左侧端点l 使得[l,r]第一次满足条件
那么以l右侧的位置为左端点必定满足

def countSubarrays(nums, k):""":type nums: List[int]:type k: int:rtype: int"""n=len(nums)ans=0total=0l=0for r in range(n):total+=nums[r]while l<=r and total*(r-l+1)>=k:total-=nums[l]l+=1ans+=r-l+1return ans

4/29 2962. 统计最大元素出现至少 K 次的子数组

遍历记录最大元素出现的位置 ind
对于最大元素位置i1 在(i0,i1]间的所有位置都需要到ik为止才能满足
此时有(i1-i0)*(n-ik)个子数组

def countSubarrays(nums, k):""":type nums: List[int]:type k: int:rtype: int"""n=len(nums)maxv=max(nums)ind=[-1]for i in range(n):if nums[i]==maxv:ind.append(i)l,r=1,kans=0while r<len(ind):ans+=(ind[l]-ind[l-1])*(n-ind[r])l+=1r+=1return ans

4/30 1295. 统计位数为偶数的数字

依次判断

def findNumbers(nums):""":type nums: List[int]:rtype: int"""def check(num):b = 0while num>0:num=num//10b+=1return b%2==0ans = 0for num in nums:if check(num):ans+=1return ans

5/1 2071. 你可以安排的最多任务数目

假设完成k个任务 选择k个值最小的任务 和k个力量最大的工人
二分来找到最大的k
check(mid)用来判断mid个是否满足

def maxTaskAssign(tasks, workers, pills, strength):""":type tasks: List[int]:type workers: List[int]:type pills: int:type strength: int:rtype: int"""from sortedcontainers import SortedListn=len(tasks)m=len(workers)tasks.sort()workers.sort()def check(mid):p=pillswk=SortedList(workers[m-mid:])for i in range(mid-1,-1,-1):if wk[-1]>=tasks[i]:wk.pop()else:if p==0:return Falserep=wk.bisect_left(tasks[i]-strength)if rep==len(wk):return Falsep-=1wk.pop(rep)return Truel,r,ans=1,min(m,n),0while l<=r:mid=(l+r)//2if check(mid):ans=midl=mid+1else:r=mid-1return ans

5/2 838. 推多米诺

广搜BFS
使用l,r两个集合记录当前向左向右倾倒的位置
每一个向左的位置-1 如果位置上的骨牌状态为.则暂时标记可以倾倒
向右的一样
判断向左向右倾倒的位置是否有重复 如果有重复
这个位置将不会倾倒 去除这些位置
将可以倾倒的位置标记后 下一轮重新操作

def pushDominoes(dominoes):""":type dominoes: str:rtype: str"""dmn = list(dominoes)l,r = set(),set()for loc,c in enumerate(dmn):if c=="R":r.add(loc)elif c=="L":l.add(loc)n = len(dominoes)while l or r:tmpl,tmpr = set(),set()for loc in l:tmp = loc-1if tmp>=0 and dmn[tmp]==".":tmpl.add(tmp)for loc in r:tmp = loc+1if tmp<n and dmn[tmp]==".":tmpr.add(tmp)same = tmpl&tmprtmpl -= sametmpr -= same for loc in tmpl:dmn[loc]="L"for loc in tmpr:dmn[loc]="R"l = tmplr = tmprreturn "".join(dmn)

5/3 1007. 行相等的最少多米诺旋转

遍历记录数值在top出现的次数t[x] 在bottoms出现b[x]次
并统计每个位置数值出现次数nums[x]如果某个位置top,bottoms相同 则只在nums中统计一次
如果需要满足条件则必定存在某个数值x nums[x]=len(tops)
如果交换到top需要n-t[x]次 到下层需要n-b[x] 取小值

def minDominoRotations(tops, bottoms):""":type tops: List[int]:type bottoms: List[int]:rtype: int"""n=len(tops)nums=[0]*7t,b=[0]*7,[0]*7for i in range(n):t[tops[i]]+=1b[bottoms[i]]+=1nums[tops[i]]+=1if tops[i]!=bottoms[i]:nums[bottoms[i]]+=1for i in range(1,7):if nums[i]==n:return min(n-t[i],n-b[i])return -1

5/4 1128. 等价多米诺骨牌对的数量

依次遍历

def numEquivDominoPairs(dominoes):""":type dominoes: List[List[int]]:rtype: int"""m = {}ret = 0for a,b in dominoes:if a>b:a,b=b,atmp = m.get((a,b),0)m[(a,b)] = tmp+1for v in m.values():if v>=2:ret += (v-1)*v/2return ret

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

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

相关文章

三、Hadoop1.X及其组件的深度剖析

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月7日 专栏&#xff1a;Hadoop教程 一、Hadoop 1.X 概述 &#xff08;一&#xff09;概念 Hadoop 是 Apache 开发的分布式系统基础架构&#xff0c;用 Java 编写&#xff0c;为集群处理大型数据集提供编程模型&#xff0c;…

Java中字符转数字的原理解析 - 为什么char x - ‘0‘能得到对应数字

前言 在Java编程中&#xff0c;我们经常需要将字符形式的数字转换为实际的数值。有很多方法可以实现这一转换&#xff0c;比如使用Integer.parseInt()或Character.getNumericValue()等方法。但有一种简便且高效的方式是直接使用char - 0运算&#xff0c;本文将详细解析这种方法…

第5讲、Transformer 编码器(Encoder)处理过程详解

&#x1f50d; Transformer 编码器&#xff08;Encoder&#xff09;处理过程详解 Transformer Encoder 是一个由 N 层&#xff08;一般为 6 层&#xff09;堆叠而成的模块结构。每一层的本质是两个核心子模块&#xff1a; 多头自注意力&#xff08;Multi-Head Self-Attention…

SWiRL:数据合成、多步推理与工具使用

SWiRL&#xff1a;数据合成、多步推理与工具使用 在大语言模型&#xff08;LLMs&#xff09;蓬勃发展的今天&#xff0c;其在复杂推理和工具使用任务上却常遇瓶颈。本文提出的Step-Wise Reinforcement Learning&#xff08;SWiRL&#xff09;技术&#xff0c;为解决这些难题带…

【Windows 常用工具系列 22 -- vscode markdown preview 字体大小设置】

文章目录 解决办法 解决办法 打开设置&#xff08;快捷键 Ctrl , 。或者左下角图标齿轮 ⚙&#xff09;搜索设置选项 Markdown › Preview: Font Size控制 Markdown 预览中使用的字号(以像素为单位)。 推荐阅读 https://blog.csdn.net/yanglsbb/article/details/127306685

【风控】模型监控和异常处理

在风控模型的全生命周期中&#xff0c;模型监控与异常处理是保障模型持续、稳定、可靠运行的关键环节。本指南旨在提供系统化、可落地的监控指标、预警策略及异常处置流程&#xff0c;帮助团队快速定位、响应并修复线上模型问题&#xff0c;最大限度降低风险。 1.模型监控与预…

第4章 递推法

4.1 递推法概述 设计思想&#xff1a; 递推法&#xff08;Recurrence Method&#xff09;通过已知的初始条件和递推关系&#xff0c;逐步推导出问题的最终结果&#xff0c;常用于序列计算和分阶段问题求解。 示例&#xff1a;猴子和桃子问题 题目描述&#xff1a; 猴子每天吃…

可视化魔法指南

🎨 ECharts数据可视化魔法指南 🌟 ECharts:数据的艺术画笔 #mermaid-svg-ARwFHUrXBJ03Gpo9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ARwFHUrXBJ03Gpo9 .error-icon{fill:#552222;}#mermaid-svg-ARwFHUr…

SpringBoot学生宿舍管理系统开发实现

概述 一款基于SpringBoot框架开发的学生宿舍管理系统完整项目&#xff0c;该系统包含管理员、学生、宿管员和维修员四大角色模块&#xff0c;功能完善&#xff0c;非常适合作为设计或二次开发的基础项目。 主要内容 5.1 管理员功能模块 管理员登录界面采用验证码验证机制&a…

同步 / 异步、阻塞 / 非阻塞

前言 同步异步&#xff0c;在计算机科学中是一个非常重要的概念。作为一位软件开发工程师&#xff0c;我们每天都在和同步和异步打交道。 同步 同步-阻塞&#xff0c;顾名思义&#xff0c;就是同步和阻塞。调用方法后&#xff0c;必须等到结果返回&#xff0c;才能继续执行别…

AOP封装进行批量的数据查询并填充

在我们日常的项目开发中&#xff0c;我们经常会遇到这样的问题。我们有一张用户表&#xff0c;用户表中有用户ID和用户名称。我们其他表中会记录我们当前操作人的ID&#xff0c;一般&#xff0c;我们会记录一个创建人ID和修改人ID。那么&#xff0c;这个时候问题来了&#xff0…

Java学习手册:数据库事务相关知识

一、事务的概念与特性 概念 &#xff1a;事务是数据库中一系列操作的集合&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败&#xff0c;是一个不可分割的工作单位。例如&#xff0c;在银行转账系统中&#xff0c;从一个账户扣款和向另一个账户存款这两个操作必须作为…

java复杂度,包装类,泛型解析

如何衡量代码的好坏&#xff1f; 评价代码的好坏我们使用算法效率来判断&#xff0c;而算法效率分两种&#xff1a; 算法效率&#xff1a; 第一种是时间效率&#xff0c;第二种是空间效率&#xff0c;时间效率被称为时间复杂度&#xff0c;⽽空间效率被称作空间复杂度。 时间…

基于 SpringBoot + Vue 的校园管理系统设计与实现

一、项目简介 本系统以校园组织管理为主线&#xff0c;结合用户权限分离机制与模块化设计&#xff0c;实现对“单位类别、单位、通知推送、投票信息、用户回复”等内容的全流程管理&#xff0c;广泛适用于教育局、高校及下属组织的信息管理工作。 &#x1f3af; 项目亮点&…

iOS蓝牙技术实现及优化

以下是针对2025年iOS蓝牙技术实现的核心技术要点的深度解析&#xff0c;结合当前iOS 18&#xff08;推测版本&#xff09;的最新特性与开发实践&#xff0c;分模块结构化呈现&#xff1a; 一、硬件与协议层适配 BLE 5.3 支持 iOS 18默认支持蓝牙5.3协议&#xff0c;需注意&…

Qt 中实现观察者模式(Observer Pattern)

在 Qt 中实现**观察者模式(Observer Pattern)通常利用其内置的信号与槽(Signals & Slots)**机制,这是最符合 Qt 设计哲学的方式。以下是详细实现方法和关键点: —### 1. 观察者模式的核心思想- Subject(被观察者):维护一个观察者列表,在状态变化时通知观察者。- …

写程序,统计两会政府工作报告热词频率,并生成词云

import jieba from collections import Counter from wordcloud import WordCloud import matplotlib.pyplot as pltdef generate_wordcloud():try:# 读取文本文件with open(E:\\桌面\\s.txt, r, encodingutf-8) as file:text file.read()# 中文分词words jieba.lcut(text)# …

【Science Advances】普林斯顿大学利用非相干光打造可重构纳米光子神经网络

(导读 ) 人工智能对计算性能需求剧增&#xff0c;电子微处理器发展受功耗限制。光学计算有望解决这些问题&#xff0c;光学神经网络&#xff08;ONNs&#xff09;成为研究热点&#xff0c;但现有 ONNs 因设计缺陷&#xff0c;在图像分类任务中精度远低于现代电子神经网络&#…

gin + es 实践 01

项目结构说明 目录结构概览 Go-ES 项目采用领域驱动设计&#xff08;DDD&#xff09;架构&#xff0c;目录结构清晰&#xff0c;各层次职责分明。以下是项目的主要目录结构&#xff1a; go-es/ ├── cmd/ # 应用程序入口 │ └── api/ …

如何构建直播美颜SDK?从美颜API调用逻辑到GPU优化实战

随着短视频和直播行业的爆发&#xff0c;美颜SDK已成为各大直播平台的“标配”。从基础的磨皮、美白&#xff0c;到如今的AI滤镜、虚拟形象&#xff0c;这些功能的背后都离不开高效的美颜SDK支持。那么&#xff0c;如何构建一款性能优越、体验流畅的直播美颜SDK呢&#xff1f;本…