LeetCode 每日一题 2023/11/13-2023/11/19
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步
目录
- 11/13 307. 区域和检索 - 数组可修改
- 11/14 1334. 阈值距离内邻居最少的城市
- 11/15 2656. K 个元素的最大和
- 11/16 2760. 最长奇偶子数组
- 11/17 2736. 最大和查询
- 11/18 2342. 数位和相等数对的最大和
- 11/19 689. 三个无重叠子数组的最大和
11/13 307. 区域和检索 - 数组可修改
分段处理 对于n个数分为若干块 每块大小size 一共n//size块
初始化统计每块总和
更新index 在index//size块中
取和left在k1中第i个 right在k2中第j个
如果k1=k2 那么就是k1中[i,j]和
否则就是k1的[i,size-1] k2的[j,size-1] 加上k1+1~k2-1的所有块总和
每块大小去更号n
class NumArray(object):def __init__(self, nums):""":type nums: List[int]"""self.nums = numsn = len(nums)self.size = int(n**0.5)self.sums = [0]*((n+self.size-1)//self.size)for index,num in enumerate(nums):self.sums[index//self.size] += numdef update(self, index, val):""":type index: int:type val: int:rtype: None"""self.sums[index//self.size]+= val-self.nums[index]self.nums[index] = valdef sumRange(self, left, right):""":type left: int:type right: int:rtype: int"""s = self.sizek1,k2 = left//s,right//sif k1==k2:return sum(self.nums[left:right+1])else:return sum(self.nums[left:(k1+1)*s])+sum(self.sums[k1+1:k2])+sum(self.nums[k2*s:right+1])
11/14 1334. 阈值距离内邻居最少的城市
依次判断
def findTheCity(n, edges, distanceThreshold):""":type n: int:type edges: List[List[int]]:type distanceThreshold: int:rtype: int"""w = [[float('inf')]*n for _ in range(n)]for x,y,ed in edges:w[x][y]=w[y][x]=edf=wfor k in range(n):for i in range(n):for j in range(n):f[i][j] = min(f[i][j],f[i][k]+f[k][j])ans = 0mincnt = float('inf')for i in range(n):cnt = 0for j in range(n):if j!=i and f[i][j]<=distanceThreshold:cnt+=1if cnt<=mincnt:mincnt=cntans = ireturn ans
11/15 2656. K 个元素的最大和
只需要选择最大的数进行操作
def maximizeSum(nums, k):""":type nums: List[int]:type k: int:rtype: int"""v = max(nums)return v*k+(1+k-1)*(k-1)//2
11/16 2760. 最长奇偶子数组
从后往前判断 cur记录当前最长子数组
如果遇到大于threshold则0开始
如果遇到奇偶相同则从1开始
def longestAlternatingSubarray(nums, threshold):""":type nums: List[int]:type threshold: int:rtype: int"""ans=cur=0for i in range(len(nums)-1,-1,-1):if nums[i]>threshold:cur=0elif i==len(nums)-1 or (nums[i]+nums[i+1])%2==1:cur+=1else:cur=1if nums[i]%2==0:ans=max(ans,cur)return ans
11/17 2736. 最大和查询
将两个数组合并为一个
先按nums1从大到小 再按nums2从大到小
逐一处理查询
def maximumSumQueries(nums1, nums2, queries):""":type nums1: List[int]:type nums2: List[int]:type queries: List[List[int]]:rtype: List[int]"""import bisectans = [-1]*len(queries)l = sorted([(a,b) for a,b in zip(nums1,nums2)],key=lambda x:-x[0])st = []j=0for i,(x,y) in sorted(enumerate(queries),key=lambda x:-x[1][0]):while j<len(l) and l[j][0]>=x:xx,yy=l[j]while st and st[-1][1]<=xx+yy:st.pop()if not st or st[-1][0]<yy:st.append((yy,xx+yy))j+=1p = bisect.bisect_left(st,(y,))if p<len(st):ans[i] = st[p][1]return ans
11/18 2342. 数位和相等数对的最大和
遍历求出各个数的数位和 记录所有数位和最大的数
def maximumSum(nums):""":type nums: List[int]:rtype: int"""m={}def check(num):ans = 0while num:ans += num%10num //=10return ansans = -1for num in nums:v = check(num)if v in m:ans = max(ans,m[v]+num)m[v] = max(m.get(v,0),num)return ans
11/19 689. 三个无重叠子数组的最大和
从左到右三个滑动窗口
sum1,sum2,sum3分别记录当前三个滑动窗口各自的和
maxs1为第一个滑动窗口最大值
maxs2为前两个滑动窗口最大值
maxs3为三个滑动窗口最大值
maxs1loc为第一个滑动窗口最大值的起始位置
maxs2loc为前两个滑动窗口最大值的起始位置
maxs3loc及我们需要的答案ans
def maxSumOfThreeSubarrays(nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""ans = []sum1,maxs1,maxs1loc = 0,0,0sum2,maxs2,maxs2loc = 0,0,()sum3,maxs3 = 0,0n = len(nums)for i in range(k*2,n):sum1+=nums[i-k*2]sum2+=nums[i-k]sum3+=nums[i]if i>=k*3-1:if sum1>maxs1:maxs1=sum1maxs1loc = i-k*3+1if maxs1+sum2>maxs2:maxs2=maxs1+sum2maxs2loc = (maxs1loc,i-k*2+1)if maxs2+sum3>maxs3:maxs3 = maxs2+sum3ans = [maxs2loc[0],maxs2loc[1],i-k+1]sum1-=nums[i-k*3+1]sum2-=nums[i-k*2+1]sum3-=nums[i-k+1]return ans
相关文章:
LeetCode 每日一题 2023/11/13-2023/11/19
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/13 307. 区域和检索 - 数组可修改11/14 1334. 阈值距离内邻居最少的城市11/15 2656. K 个元素的最大和11/16 2760. 最长奇偶子数组11/17 2736. 最大和查询11/18 2342. 数…...
Leetcode——169 多数元素
我的答案 class Solution {public int majorityElement(int[] nums) {int len nums.length;Arrays.sort(nums);int count 1;int res 0;if(len 1){return nums[0];}for(int i0; i<len-1; i){if(nums[i]nums[i1]){count;}else{count 1;}if(count>len/2){res nums[i]…...
vue中原生H5拖拽排序_拖拽图片也是同样的道理
原文地址【vue中原生H5拖拽排序_拖拽图片也是同样的道理】 H5有基于拖拽的事件机制,如果你还不熟悉,请看我之前的文章【拖拽上传】中有介绍。 原生拖拽API实现 由于比较简单直接上代码了: <!DOCTYPE html> <html lang"en&qu…...
【C语言】计算实时太阳角度(高度角、方位角),以及使用stm32单片机实时获取时间戳
整体计算方法 在编写该代码的过程中寻找了多篇博文和论文,综合所有文章且按网上的以0时的方位角的0,且随时间累加累加至360度。我修改了博文和论文的一些角度的计算方法。得到一下代码与网站计算的方位角相互验证过,误差不超过1 验证网站 太…...
创建git仓库
①git init:用于在一个现有的目录中初始化一个新的 Git 仓库。 # 进入你的项目目录,如果你想要在当前目录下初始化 Git 仓库。 git init 这会在当前目录下创建一个名为 .git 的子目录,其中包含 Git 仓库的所有必要文件和目录。(…...
19.悲观锁与乐观锁解析
1.悲观锁 悲观锁比较悲观,它认为如果不锁住这个资源,别的线程就会来争抢,就会造成数据结果错误,所以悲观锁为了确保结果的正确性,会在每次获取并修改数据时,都把数据锁住,让其他线程无法访问该…...
C语言--给出一个点的坐标判断它在单位圆的内部外部还是上面
一.题目描述 给出一个点的坐标判断它在单位圆的内部外部还是上面 例如输入1,0,输出在圆上 二.思路分析 首先,单位圆是以坐标系原点为圆心、半径为1的圆。 给定一个点坐标 (x,y),我们可以使用勾股定理计算该点到坐标系原点的距…...
变频器基础问答集21-50
21.请问电机软起动器是否能节能?软启动节能效果有限,但可以减少启动对电网的冲击,也可以实现平滑启动,保护电机机组。 根据能量守恒理论,由于加入了相对复杂的控制电路,软启动不但不节能,还会加大能量的消耗,但它可以减小电路的启…...
OpenCvSharp从入门到实践-(01)认识OpenCvSharp开发环境搭建
目录 一、OpenCV 二、OpenCvSharp 三、OpenCvSharp开发环境搭建 四、下载 五、其他 一、OpenCV OpenCV是基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习函数库,支持Windows、Linux、Android和Mac OS操作系统。OpenCV由一系…...
OSG文字-渐变文字(4)
渐变文字(osgText::FadeText类)继承自osgText::Text类继承关系图如图9-6所示 图9-6 osgText::FadeText的继承关系图 从继承关系图中可以看出,它继承自osgText::Text类,因此,它具备一般文字属性的设置方法这里不再重复说明。创建渐变文字与一般…...
排查生产环境:MySQLTransactionRollbackException数据库死锁
一. 问题现状 程序直接宕机,并在error.log日志中发现大量的报错日志,如下: ### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting trans…...
140.【鸿蒙OS开发-01】
鸿蒙开发 (一)、初识鸿蒙1.初识鸿蒙(1).移动通讯技术的发展(2).完整的鸿蒙开发 (二)、鸿蒙系统介绍1.鸿蒙系统的官方定义(1).鸿蒙操作系统概述(2).鸿蒙的生态 2.鸿蒙系统的特点3.鸿蒙和安卓的对比4.鸿蒙开发的发展前景 (三)、鸿蒙开发准备工作1.鸿蒙OS的完整开发流程2.注册并实…...
npm install 下载不下来依赖解决方案
背景 最近在构建 前端自动化部署 的方案中发现了一个问题,就是我在npm install的时候,有时候成功,有时候不成功,而且什么代码也没发生更改,报错也就是那么几个错,所以在此也整理了一下遇到这种情况…...
接口自动化中cookies的处理技术
一,理论知识 为什么有cookie和session? 因为http协议是一种无状态的协议,即每次服务端接受到客户端的请求时都时一个全新的请求,服务器并不知道客户端的请求记录,session和cookie主要目的就是弥补http的无状态特性 …...
PHP 安装
您需要做什么? 为了开始使用 PHP,您可以: 找一个支持 PHP 和 MySQL 的 Web 主机在您自己的 PC 机上安装 Web 服务器,然后安装 PHP 和 MySQL 使用支持 PHP 的 Web 主机 如果您的服务器支持 PHP,那么您不需要做任何事情…...
小程序常见操作
测试时访问本地http服务器调用报错 微信开发者工具(右上角)-> 详情->本地设置->不校验合法域名、web-view(业务域名)... -> 去除勾选使用npm包 1) 工程目录下创建package.jsonnpm init(手动完成设定) / npm init -y (默认设定) 2) 安装 np…...
STM32F4串口USART发送为00的解决方案
检查接线是否正确检查TX是否为复用推挽输出 3.检查是否将TX和RX引脚重映射为USART功能 在STM32中,每个GPIO引脚可以配置为不同的复用功能,例如UART、SPI、I2C等。具体来说,GPIO_PinAFConfig函数用于配置GPIO引脚的复用功能。它的参数包括GPIO…...
重磅解读 | 阿里云 云网络领域关键技术创新
云布道师 10 月 31 日,杭州云栖大会,阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读,阿里云网络产品线负责人祝顺民带来《云智创新,网络随行》的主题发言,针对阿里云飞天洛神云网络(下…...
【蓝桥杯省赛真题45】Scratch九宫格游戏 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解
目录 scratch九宫格游戏 一、题目要求 编程实现 二、案例分析 1、角色分析...
物联网AI MicroPython学习之语法 ADC数模模块
学物联网,来万物简单IoT物联网!! ADC 介绍 模块功能: ADC数模转换模块 ADC功能在ESP32引脚32-39上可用,使用默认配置时,ADC引脚上的输入电压必须介于0.0v和1.0v之间(任何高于1.0v的值都将读为4095&#x…...
IAPWS Python库:工业级热力学计算与工程分析的终极解决方案
IAPWS Python库:工业级热力学计算与工程分析的终极解决方案 【免费下载链接】iapws python libray for IAPWS standard calculation of water and steam properties 项目地址: https://gitcode.com/gh_mirrors/ia/iapws 你是否曾为复杂的热力学计算而头疼&am…...
AI智能体后端服务框架agentserver:架构设计与生产部署指南
1. 项目概述与核心价值最近在折腾一些自动化流程和智能体应用,发现一个挺有意思的开源项目,叫agentserver/agentserver。乍一看这个名字,可能觉得有点“套娃”,但它的定位其实非常清晰:一个专为AI智能体(Ag…...
React声明式数据表格方案:基于Schema与适配器的企业级实践
1. 项目概述:一个为现代React应用而生的声明式数据表格方案 如果你正在用React构建一个需要复杂数据展示和交互的后台管理系统、监控面板或者数据分析工具,那么“如何优雅地实现一个功能强大的数据表格”这个问题,大概率已经让你头疼过不止一…...
5分钟掌握Unlock-Music:浏览器中一键解锁加密音乐文件
5分钟掌握Unlock-Music:浏览器中一键解锁加密音乐文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https…...
sqli-labs通关指南(1-10)
sqli-labs通关指南(1-10) get提交:url类型 数据长度2k35 优点速度非常快 缺点:不安全,明文传输 post提交:请求体传输 数据长度无限制 安全性高 速度比get慢,浏览器不缓存数据 less1 P…...
开发者技能管理工具:从YAML定义到可视化部署的完整实践
1. 项目概述:一个面向开发者的技能管理工具最近在GitHub上看到一个挺有意思的项目,叫fightZy/simple-skills。乍一看名字,你可能会觉得这是个关于“简单技能”的什么教程或者清单。但点进去之后,我发现它的定位其实更偏向于一个个…...
黑苹果EFI配置实战指南:从硬件兼容到完美安装的完整解决方案
黑苹果EFI配置实战指南:从硬件兼容到完美安装的完整解决方案 【免费下载链接】Hackintosh Hackintosh long-term maintenance model EFI and installation tutorial 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintosh 黑苹果(Hackintosh&a…...
STM32+LAN8720网线热插拔翻车实录:我的板子为什么插上网线没反应?
STM32与LAN8720热插拔问题深度解析:从硬件链路检测到软件容错设计 引言:当网线插入变成一场"玄学"实验 调试STM32以太网功能的开发者们,是否经历过这样的场景:实验室里,你反复插拔网线,开发板却像…...
【2026年6月】英语四级高频核心词汇1500+历年真题pdf电子版
2026年上半年全国大学四级考试将于6月13日举行!帮助广大考生高效备考,小编精心整理了2026年6月英语四级CET4核心词汇1500个,PDF电子版,可下载打印! 资料下载: 资料下载https://pan.quark.cn/s/c0e98156a95…...
UVa 1591 Data Mining
题目分析 问题背景 Dr. Tuple\texttt{Dr. Tuple}Dr. Tuple 正在为 ACM\texttt{ACM}ACM 公司开发一个数据挖掘应用程序,其中包含两个数组 PPP 和 QQQ,每个数组都有 NNN 条记录。数组 PPP 中的记录大小为 SPS_PSP 字节,数组 QQQ 中的记录大小…...
