LeetCode 每日一题 2024/10/7-2024/10/13

news/2024/10/20 21:08:27/

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


目录

      • 10/7 871. 最低加油次数
      • 10/8 1436. 旅行终点站
      • 10/9 3171. 找到按位或最接近 K 的子数组
      • 10/10 3162. 优质数对的总数 I
      • 10/11 3164. 优质数对的总数 II
      • 10/12 3158. 求出出现两次数字的 XOR 值
      • 10/13 1884. 鸡蛋掉落-两枚鸡蛋


10/7 871. 最低加油次数

依次经过加油站 将能够加的油放入大顶堆中
如果无法到达加油站 从能够加的油中选出最多的加入

def minRefuelStops(target, startFuel, stations):""":type target: int:type startFuel: int:type stations: List[List[int]]:rtype: int"""import heapqfuel = startFuelpre = 0ans = 0stations.append([target,0])l = []for loc,f in stations:v = loc-prefuel -= vwhile fuel<0 and l:tmp = -heapq.heappop(l)ans +=1fuel += tmpif fuel < 0:return -1heapq.heappush(l,-f)pre = locreturn ans

10/8 1436. 旅行终点站

target存储所有出现的终点站
source存储所有出现的起点
从target中找到一个未出现在source中的点即为最终终点站

def destCity(paths):""":type paths: List[List[str]]:rtype: str"""target = set()source = set()for s,t in paths:source.add(s)target.add(t)for loc in target:if loc not in source:return loc

10/9 3171. 找到按位或最接近 K 的子数组

遍历数组尾nums[i]
从后往前遍历j [j~i]
如果x为nums[j]子集 后续已经在i=j时处理过不需要继续进行

def minimumDifference(nums, k):""":type nums: List[int]:type k: int:rtype: int"""ans=float("inf")for i,x in enumerate(nums):ans = min(ans,abs(x-k))j = i-1while j>=0 and nums[j]|x!=nums[j]:nums[j] |= xans = min(ans,abs(nums[j]-k))j-=1return ans

10/10 3162. 优质数对的总数 I

遍历每一对数是否优质

def numberOfPairs(nums1, nums2, k):""":type nums1: List[int]:type nums2: List[int]:type k: int:rtype: int"""ans = 0for n1 in nums1:for n2 in nums2:if n1%(n2*k)==0:ans+=1return ans

10/11 3164. 优质数对的总数 II

nums1优质的必须能被k整除
除以k后 统计nums1中每个数的所有因子个数 cnt[c]
只要nums2中数值num的优质数对就是以num为因子统计到的个数cnt[num]

def numberOfPairs(nums1, nums2, k):""":type nums1: List[int]:type nums2: List[int]:type k: int:rtype: int"""import mathcnt={}for num in nums1:if num%k>0:continuenum = num//kfor d in range(1,int(math.sqrt(num))+1):if num%d>0:continuecnt[d] = cnt.get(d,0)+1if d**2<num:cnt[num//d]=cnt.get(num//d,0)+1            ans = 0for num in nums2:ans += cnt.get(num,0)return ans

10/12 3158. 求出出现两次数字的 XOR 值

从头遍历 记录出现过的数字 如果出现第二次则将其异或

def duplicateNumbersXOR(nums):""":type nums: List[int]:rtype: int"""ans = 0s =set()for num in nums:if num in s:ans ^= nums.add(num)return ans

10/13 1884. 鸡蛋掉落-两枚鸡蛋

动态规划
dp[i]表示i层需要的最少操作次数
选择k往下扔
如果没有碎那么答案在[k+1,i] i-k层建筑中 等同于dp[i-k]
如果碎了答案在[1,k-1] 依次试需要k-1次

def twoEggDrop(n):""":type n: int:rtype: int"""dp=[0]+[float("inf")]*nfor i in range(1,n+1):for k in range(1,i+1):dp[i] = min(dp[i],max(k-1,dp[i-k])+1)return dp[n]


http://www.ppmy.cn/news/1538414.html

相关文章

【在Linux世界中追寻伟大的One Piece】信号捕捉|阻塞信号

目录 1 -> 信号捕捉初识 2 -> 阻塞信号 2.1 -> 信号其他相关常见概念 2.2 -> 在内核中的表示 2.3 -> sigset_t 2.4 -> 信号集操作函数 2.5 -> sigprocmask 2.6 -> sigpending 3 -> 捕捉信号 3.1 -> 内核如何实现信号的捕捉 3.2 ->…

基于SpringBoot+Vue+Uniapp的仓库点单小程序的详细设计和实现

2. 详细视频演示 文章底部名片&#xff0c;联系我获取更详细的演示视频 3. 论文参考 4. 项目运行截图 代码运行效果图 代码运行效果图 代码运行效果图 代码运行效果图代码运行效果图 代码运行效果图 5. 技术框架 5.1 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发…

从RNN讲起——序列数据处理网络

文章目录 RNN&#xff08;Recurrent Neural Network&#xff0c;循环神经网络&#xff09;1. 什么是RNN&#xff1f;2. 经典RNN的结构3. RNN的主要特点4. RNN存在问题——长期依赖&#xff08;Long-TermDependencies&#xff09;问题 LSTM&#xff08;Long Short-Term Memory&a…

前端打印功能(vue +springboot)

后端 后端依赖生成pdf的方法pdf转图片使用(用的打印模版是带参数的 ,参数是aaa)总结 前端页面 效果 后端 依赖 依赖 一个是用模版生成对应的pdf,一个是用来将pdf转成图片需要的 <!--打印的--><dependency><groupId>net.sf.jasperreports</groupId>&l…

GO如何将信息打包进二进制文件并在运行时显示

文章目录 1. **背景介绍**2. **将信息打包进 Go 二进制文件**2.1 定义全局变量2.2 使用 -ldflags 注入变量2.3 构建并运行程序 3. **优化构建流程&#xff1a;使用 Makefile 自动化**4. **总结** 1. 背景介绍 在开发和发布 Go 应用程序时&#xff0c;了解构建时的信息&#xf…

Vue3实现面板分割

Vue3实现面板分割 下面是将你提供的 Vue 组件使用 SCSS&#xff0c;并以 Vue 3 的组合式 API 形式的面板分割代码。 1、建立组件相关的文件夹 2、将下面代码拷贝到index.vue中 <template><div class"g-split" ref"gSplit"><!-- 水平方向…

Redis的过期策略和内存淘汰策略

Redis 的过期策略和内存淘汰策略是管理内存和数据有效性的两个重要机制。以下是对这两者的详细介绍&#xff1a; 过期策略 Redis 允许为键设置过期时间&#xff0c;当键的过期时间到达时&#xff0c;Redis 会自动将其删除。过期策略主要包括&#xff1a; 定期删除&#xff1a…

【动物识别系统】Python+卷积神经网络算法+人工智能+深度学习+机器学习+计算机课设项目+Django网页界面

一、介绍 动物识别系统。本项目以Python作为主要编程语言&#xff0c;并基于TensorFlow搭建ResNet50卷积神经网络算法模型&#xff0c;通过收集4种常见的动物图像数据集&#xff08;猫、狗、鸡、马&#xff09;然后进行模型训练&#xff0c;得到一个识别精度较高的模型文件&am…