LeetCode 每日一题 2024/3/4-2024/3/10

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


目录

      • 3/4 232. 用栈实现队列
      • 3/5 1976. 到达目的地的方案数
      • 3/6 2917. 找出数组中的 K-or 值
      • 3/7 2575. 找出字符串的可整除数组
      • 3/8 2834. 找出美丽数组的最小和
      • 3/9 2386. 找出数组的第 K 大和
      • 3/10 299. 猜数字游戏


3/4 232. 用栈实现队列

两个栈实现
一个为入栈 一个为出栈

class MyQueue(object):def __init__(self):"""Initialize your data structure here."""self.A,self.B=[],[]def push(self, x):"""Push element x to the back of queue.:type x: int:rtype: void"""self.A.append(x)def pop(self):"""Removes the element from in front of queue and returns that element.:rtype: int"""pk = self.peek()self.B.pop()return pkdef peek(self):"""Get the front element.:rtype: int"""if self.B:return self.B[-1]if not self.A:return -1while self.A:self.B.append(self.A.pop())return self.B[-1]def empty(self):"""Returns whether the queue is empty.:rtype: bool"""return not self.A and not self.B

3/5 1976. 到达目的地的方案数

m[x][y]代表x,y之间的路径时间 如果没有直接路径则为无穷
dis[x]代表从0到x的路径长度
dijkstra 每次更新与邻居的最短路径 选最短的走
f[x]记录0到x点最短路径的条数

def countPaths(n, roads):""":type n: int:type roads: List[List[int]]:rtype: int"""MOD = 10**9+7m= [[float("inf")*n] for _ in range(n)]for x,y,v in roads:m[x][y] = vm[y][x] = vdis=[float("inf")]*ndis[0]=0f=[0]*nf[0]=1done = [False]*nwhile True:x = -1for i,ok in enumerate(done):if not ok and (x<0 or dis[i]<dis[x]):x=iif x==n-1:return f[-1]done[x]=Truedx=dis[x]for y,d in enumerate(m[x]):new = dx+dif new<dis[y]:dis[y]=newf[y]=f[x]elif new==dis[y]:f[y]=(f[y]+f[x])%MOD

3/6 2917. 找出数组中的 K-or 值

最多32位 枚举每一位情况

def findKOr(nums, k):""":type nums: List[int]:type k: int:rtype: int"""maxv = max(nums)ans = 0for i in range(32):if 1<<i>maxv:breakcur = 0for num in nums:if num&(1<<i)>0:cur+=1if cur==k:ans +=(1<<i)breakreturn ans

3/7 2575. 找出字符串的可整除数组

一次添加 增加一位 原数*10+新添加那一位的值

def divisibilityArray(word, m):""":type word: str:type m: int:rtype: List[int]"""n = len(word)ans = [0]*ncur = 0for i,w in enumerate(word):cur = cur*10+int(w)if cur%m==0:ans[i]=1cur %=mreturn ans

3/8 2834. 找出美丽数组的最小和

为了不存在两个数相加=target 并且和尽量小
可以选1,2…target/2
从小到大选择 如果不够n个则继续添加target,target+1…

def minimumPossibleSum(n, target):""":type n: int:type target: int:rtype: int"""MOD=10**9+7if target//2>=n:return (n*(n+1)/2)%MODelse:t = target//2ans = ((t*(t+1)/2)%MOD+(2*target+n-t-1)*(n-t)/2)%MODreturn ans

3/9 2386. 找出数组的第 K 大和

最大的和为所有正数相加 s1
最大值情况为选取所有正数
对其进行减法
如果是正数则去除
如果是负数则加入
所以可以把所有数都取绝对值
将题目变为绝对值后数组第k个最小子序列和
二分找到limit值 使得不超过limit的元素和有k个
dfs对各个数值进行选择

def kSum(nums, k):""":type nums: List[int]:type k: int:rtype: int"""n=len(nums)s1 = 0s2 = 0for i in range(n):if nums[i]>=0:s1+=nums[i]else:nums[i]=-nums[i]s2+=nums[i]nums.sort()global cntcnt = 0def dfs(i,t,limit):global cntif i==n or cnt>=k-1 or t+nums[i]>limit:returncnt+=1dfs(i+1,t+nums[i],limit)dfs(i+1,t,limit)l,r = 0,s2while l<=r:mid=(l+r)//2cnt=0dfs(0,0,mid)if cnt>=k-1:r=mid-1else:l=mid+1return s1-l

3/10 299. 猜数字游戏

逐位比较
如果相同则公牛数+1
如果不同 则在两个map中分别记录字符出现次数
奶牛数即为每个字符在两个map中的较小值

def getHint(secret, guess):""":type secret: str:type guess: str:rtype: str"""from collections import defaultdictn=len(secret)smap = defaultdict(int)gmap = defaultdict(int)bulls = 0for i in range(n):if secret[i]==guess[i]:bulls+=1else:smap[secret[i]] +=1gmap[guess[i]] +=1      cows = sum([min(smap[str(i)],gmap[str(i)]) for i in range(10)])ans = "{}A{}B".format(bulls,cows)return ans

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

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

相关文章

深度学习十大算法-快速掌握!

自2006年深度学习概念被提出以来&#xff0c;20年快过去了&#xff0c;深度学习作为人工智能领域的一场革命&#xff0c;已经催生了许多具有影响力的算法。那么&#xff0c;你所认为深度学习的top10算法有哪些呢&#xff1f; 以下是大力哥我心目中的深度学习top10算法&#xff…

python中列表常用函数

列表list相关函数 列表相关函数 列表相关函数 汇总&#xff1a;. 列表: 1.list() 方法用于将序列&#xff08;元组&#xff0c;集合&#xff0c;字符串等&#xff09;转换为列表。 用法&#xff1a;list( seq ) #seq为序列&#xff1a;元组 集合 字符串等 2.列表定义&a…

案例分析篇09:Web架构设计相关20个考点(7~11)(2024年软考高级系统架构设计师冲刺知识点总结)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

研究生预答辩全解析

下午参加了预答辩&#xff0c;顺利通过&#xff01;非常开心&#xff0c;做一点小小的分享。 关于如何顺利通关学位论文预答辩&#xff01; 首先&#xff0c;预答辩最重要的两样东西是论文和演讲PPT。这是需要精心准备的&#xff0c;你用不用心&#xff0c;老师一眼就…

github 中的java前后端项目整合到本地运行

前言: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未…

ES6:箭头函数中的this指向问题

普通函数中的this指向函数的调用者 例子&#xff1a; 黑马程序员的说法&#xff1a;箭头函数不会创建自己的this&#xff0c;它只会从自己的作用域链的上一层沿用this 尚硅谷的说法&#xff1a;this始终指向函数声明时所在作用域下的this的值 通俗理解就是箭头函数中找this&…

Linux搭建我的世界(MC)整合包服务器,All the Mods 9(ATM9)整合包开服教程

Linux使用MCSM面板搭建我的世界(Minecraft)整合包服务器&#xff0c;MC开服教程&#xff0c;All the Mods 9(ATM9)整合包搭建服务器的教程。 本教程使用Docker来运行mc服&#xff0c;可以方便切换不同Java版本&#xff0c;方便安装多个mc服版本。 视频教程&#xff1a;https:…

vue3+ts+element-plus实际开发之统一掉用弹窗封装

vue3tselement-plus实际开发之统一掉用弹窗封装 插槽1. 官网介绍先理解 插槽、具名插槽、 作用域插槽、动态插槽名、具名作用域插槽属性和使用方法 2. 统一调用弹窗封装dome实战- 使用场景&#xff1a;- 对el-dialog进行数据动态设置- 新建一个ts文件用于统一存放组件&#xff…

设备维修带来的无限价值——易点易动设备管理系统的优势

在化工工厂中&#xff0c;设备的正常运行是保障生产顺利进行的关键。然而&#xff0c;设备难免会出现故障和损坏&#xff0c;而及时有效的设备维修对于提高生产效率和降低成本至关重要。为了解决这一问题&#xff0c;易点易动设备管理系统应运而生&#xff0c;以其卓越的功能和…

【微服务学习笔记(一)】Nacos、Feign、Gateway基础使用

【微服务学习笔记&#xff08;一&#xff09;】Nacos、Feign、Gateway基础使用 总览Nacos安装配置Nacos注册中心服务多级存储模型负载均衡规则环境隔离 配置管理配置拉取配置热更新多服务共享配置 Feign远程调用配置性能优化Fegin使用 统一网关Gateway搭建网关路由断言工厂&…

【漏洞复现】畅捷通T+ GetStoreWarehouseByStore接口处存在反序列化RCE漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

扫雷小游戏制作教程:用HTML5和JavaScript打造经典游戏

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

go反射实战

文章目录 demo1 数据类型判断demo2 打印任意类型数据 demo1 数据类型判断 使用reflect.TypeOf()方法打印go中数据类型&#xff0c;可参考go官方API文档;使用格式化参数%T也能打印数据类型。 package mainimport "fmt" import "reflect" import "io&…

网络流量监控软件AnaTraf:优化性能、排除故障的最佳选择

目录 导言 网络流量监控的重要性 AnaTraf网络万用表的功能与优势 网络故障排除与优化网络性能 结论 导言 在当今数字化时代&#xff0c;计算机网络已经成为企业和组织的核心基础设施。然而&#xff0c;网络流量的管理和监控对于确保网络性能的稳定和优化至关重要。本文将介…

数码管动态扫描显示

摸鱼记录 Day_16 (&#xff9f;O&#xff9f;) review 前边已经学习了&#xff1a; 串口接收&#xff1a;Vivado 串口接收优化-CSDN博客 1. 今日摸鱼任务 串口接收数据 并用数码管显示 (&#xff9f;O&#xff9f;) 小梅哥视频&#xff1a; 17A 数码管段码显示与动态扫…

使用点链云管家创建瑜伽约课小程序

点链云管家 点链云管家是由上海点链科技开发的门店管理系统&#xff0c;为线下门店商家提供一站式门店运营服务平台解决方案&#xff0c;适用于瑜伽健身、美业、新零售会员制电商、母婴店、宠物店、按摩养生、服装、美容、美甲、汽车服务、商超零售、餐饮、KTV娱乐、干洗等18个…

Python实时追踪关键点组成人体模型

项目背景 最近遇到这样一个需求&#xff1a; 1&#xff1a;实时追踪关键点组成人体模型&#xff08;手臂包括三个点&#xff1a;手腕&#xff0c;肘关节&#xff0c;双肩&#xff1b;腿部包括胯骨&#xff0c;膝盖&#xff0c;脚踝&#xff09; 2&#xff1a;运用追踪到的关键…

数据仓库的设计开发应用(一)

目录 一、数据仓库设计的特点二、数据仓库系统开发过程三、数据仓库系统的规划 一、数据仓库设计的特点 1、“数据驱动” 的设计 数据仓库是从已有数据出发的设计方法&#xff0c;即从数据源抽取数据&#xff0c;经转换形成面向主题&#xff0c;支持决策的数据集合。 以全面了…

Talk|加州大学洛杉矶分校鲁盼:基于大型语言模型的多模态数学推理

本期为TechBeat人工智能社区第579期线上Talk。 北京时间3月14日(周四)20:00&#xff0c;加州大学洛杉矶分校博士生—鲁盼的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “基于大型语言模型的多模态数学推理”&#xff0c;向大家系统地介绍了多模态…

大语言模型智能体简介

大语言模型&#xff08;LLM&#xff09;智能体&#xff0c;是一种利用大语言模型进行复杂任务执行的应用。这种智能体通过结合大语言模型与关键模块&#xff0c;如规划和记忆&#xff0c;来执行任务。构建这类智能体时&#xff0c;LLM充当着控制中心或“大脑”的角色&#xff0…