LeetCode 每日一题 2026/10/12-2026/10/18

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


目录

      • 10/12 2897. 对数组执行操作使平方和最大
      • 10/13 3727. 最大交替平方和
      • 10/14 3723. 数位平方和的最大值
      • 10/15 2913. 子数组不同元素数目的平方和 I
      • 10/16 2916. 子数组不同元素数目的平方和 II
      • 10/17 3551. 数位和排序需要的最小交换次数
      • 10/18 1569. 将子数组重新排序得到同一个二叉搜索树的方案数


10/12 2897. 对数组执行操作使平方和最大

AND/OR 操作不会增加或减少某一位上 1 的总数,只会把某个数的 1 挪到另一个数上。
平方和要最大,应该把 1 尽量集中到少数几个大数上,因为把一位从小数挪到大数,平方和会变大。
先统计每一位上有多少个 1,再贪心拼出 k 个数:每次把还没用完的位都放进当前这个数,让它尽量大,然后把平方加进答案。

defmaxSum(nums,k):""" :type nums: List[int] :type k: int :rtype: int """mod=10**9+7cnt=[0]*31forxinnums:foriinrange(31):ifx>>i&1:cnt[i]+=1ans=0for_inrange(k):x=0foriinrange(31):ifcnt[i]:x|=1<<i cnt[i]-=1ans=(ans+x*x)%modreturnans

10/13 3727. 最大交替平方和

偶数位取正、奇数位取负,平方只和绝对值有关。
将绝对值大的放到偶数位,绝对值小的放到奇数位。
先取绝对值排序,较小的一半减去平方,较大的一半加上平方。

defmaxAlternatingSum(nums):""" :type nums: List[int] :rtype: int """ans=0n=len(nums)l=[abs(x)forxinnums]l.sort()foriinrange(n):ifi<n//2:ans-=l[i]**2else:ans+=l[i]**2returnans

10/14 3723. 数位平方和的最大值

要凑恰好 num 位、数位和恰好是 sum 的数,让各位数字的平方和最大;平方和一样时取数值最大的那个。
平方和固定时数字越集中越大,所以尽量多用 9,剩下不足 9 的部分单独放一位。
同分时要数值最大,就把这些 9 放在最高位,余数紧跟其后,剩下的位补 0。
如果 sum 比 9*num 还大,凑不出来,返回空串。

defmaxSumOfSquares(num,sum):""" :type num: int :type sum: int :rtype: str """ifnum*9<sum:return""k,s=divmod(sum,9)ans="9"*kifs:ans+=str(s)returnans+"0"*(num-len(ans))

10/15 2913. 子数组不同元素数目的平方和 I

每个子数组都要算一次「里面有多少个不同的数」,再把这个数平方后全部加起来。
数组很短,枚举左端点,再从左往右把右端点一格一格延长。
用集合记下当前这段出现过的数,集合大小就是不同元素个数,平方后加进答案。

defsumCounts(nums):""" :type nums: List[int] :rtype: int """n=len(nums)ans=0foriinrange(n):seen=set()forjinrange(i,n):seen.add(nums[j])ans+=len(seen)*len(seen)returnans

10/16 2916. 子数组不同元素数目的平方和 II

还是把每个子数组的不同元素个数平方后加起来,但数组很长,不能一段段枚举。
固定右端点从左往右扫,记下每个左端点到当前右端点这段里有多少个不同的数。
新来的数只对「上次出现位置之后」的那些左端点是新元素,这些段的不同个数都加 1。
一段数每个都加 1 时,平方和增加 2×原来的和 + 这段长度。用线段树做区间加 1 并维护平方和,每扫完一个右端点就加进答案,最后对 10^9+7 取模。

defsumCounts(nums):""" :type nums: List[int] :rtype: int """mod=10**9+7n=len(nums)sm=[0]*(4*n)sq=[0]*(4*n)lz=[0]*(4*n)defapply(p,l,r,v):length=r-l+1sq[p]=(sq[p]+2*v*sm[p]+v*v*length)%mod sm[p]=(sm[p]+v*length)%mod lz[p]+=vdefpush(p,l,r):iflz[p]andl<r:m=(l+r)//2apply(p*2,l,m,lz[p])apply(p*2+1,m+1,r,lz[p])lz[p]=0defupdate(p,l,r,ql,qr):ifql<=landr<=qr:apply(p,l,r,1)returnpush(p,l,r)m=(l+r)//2ifql<=m:update(p*2,l,m,ql,qr)ifqr>m:update(p*2+1,m+1,r,ql,qr)sm[p]=(sm[p*2]+sm[p*2+1])%mod sq[p]=(sq[p*2]+sq[p*2+1])%mod last={}ans=0forr,xinenumerate(nums):update(1,0,n-1,last.get(x,-1)+1,r)last[x]=r ans=(ans+sq[1])%modreturnans

10/17 3551. 数位和排序需要的最小交换次数

数位和更小的排前面,数位和相同则数字更小的排前面。
先按这个规则排出目标顺序,再看每个数现在在哪、应该去哪。
这些「当前位置指向目标位置」会连成若干个圈。一个圈里有 k 个数,最少交换 k-1 次就能各归其位,总次数就是 n 减去圈的个数。

defminSwaps(nums):""" :type nums: List[int] :rtype: int """defdigit_sum(x):s=0whilex:s+=x%10x//=10returns n=len(nums)order=sorted((digit_sum(x),x)forxinnums)pos={x:ifori,(_,x)inenumerate(order)}vis=[False]*n ans=nforiinrange(n):ifvis[i]:continueans-=1j=iwhilenotvis[j]:vis[j]=Truej=pos[nums[j]]returnans

10/18 1569. 将子数组重新排序得到同一个二叉搜索树的方案数

按数组顺序依次插入空的二叉搜索树,第一个数一定是根,根一换树就变了,所以根不能动。
比根小的都进左子树,比根大的都进右子树。左右两边各自的先后顺序决定子树长什么样,两边之间可以任意穿插。
左边 m 个数、右边 n 个数,穿插方式是从 m+n 个位置里选 m 个给左边。左右再各自按同样规则计算,乘起来就是总方案。题目不要原数组本身,最后减 1,并对 10^9+7 取模。

defnumOfWays(nums):""" :type nums: List[int] :rtype: int """importsys sys.setrecursionlimit(10000)mod=10**9+7n=len(nums)c=[[0]*nfor_inrange(n)]c[0][0]=1foriinrange(1,n):c[i][0]=1forjinrange(1,i+1):c[i][j]=(c[i-1][j]+c[i-1][j-1])%moddefdfs(a):iflen(a)<2:return1left=[xforxinaifx<a[0]]right=[xforxinaifx>a[0]]returnc[len(left)+len(right)][len(left)]*dfs(left)%mod*dfs(right)%modreturn(dfs(nums)-1)%mod

相关新闻

用华为云码道 CodeArts 代码智能体 :你的硬盘没缩水,是 1.28 这个数计算机存不准

用华为云码道 CodeArts 代码智能体 :你的硬盘没缩水,是 1.28 这个数计算机存不准

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 2:16:26 阅读更多 →
第三章:GEM分析 3.3 CPU 视图:从 mmap offset 到 mmap

第三章:GEM分析 3.3 CPU 视图:从 mmap offset 到 mmap

本文是 drm_gem_object 三类访问视图中的第一类&#xff08;三类视图的划分见 GEM 概述 4&#xff09;。这一视图的访问方是用户态进程的 CPU&#xff0c;入口是对 DRM 设备 fd 的 mmap(2)&#xff1b;对象内承载它的字段是 vma_node&#xff0c;对象外的协作者是设备级的 drm_…

2026/10/20 2:16:26 阅读更多 →
Vue集成高德地图实时定位全链路实践:坐标纠偏、兼容性与降级方案

Vue集成高德地图实时定位全链路实践:坐标纠偏、兼容性与降级方案

简介&#xff1a;本资源是一份轻量级 Vue 前端集成方案&#xff0c;面向 Web 开发初学者与中级前端工程师&#xff0c;解决在 Vue 项目中快速接入高德地图并实现用户实时定位的核心需求。资源包仅含 2 个关键文件&#xff08;1 个 JS 封装脚本 1 个 Vue 组件&#xff09;&…

2026/10/20 2:16:26 阅读更多 →

最新新闻

Spring Boot公益服务平台开发实战:从数据库建模到答辩全流程指南

Spring Boot公益服务平台开发实战:从数据库建模到答辩全流程指南

最近帮几个学弟学妹把基于Spring Boot的公益服务平台从零到一完整搭了一遍&#xff0c;整个过程走了不少弯路&#xff0c;也沉淀了不少可以直接复用的经验。这类系统在课程设计和毕业设计里出现频率很高&#xff0c;一是业务场景贴近生活&#xff0c;二是功能边界清晰——用户注…

2026/10/20 2:52:44 阅读更多 →
VS2019下编译FLTK 1.4.4 64位静态库完整指南

VS2019下编译FLTK 1.4.4 64位静态库完整指南

如果有人问我Windows下最省心的C界面库是什么&#xff0c;我的答案一直是FLTK。不是因为它功能最全&#xff0c;而是因为它是少数能把二进制体积控制在几百KB、链接完不带一堆运行库依赖的轻量级选择。最近我用VS2019把一个内部工具做成64位程序&#xff0c;决定把FLTK-1.4.4从…

2026/10/20 2:52:44 阅读更多 →
NSGA2多目标优化MATLAB实现:从原理到代码全解析

NSGA2多目标优化MATLAB实现:从原理到代码全解析

简介&#xff1a;一份MATLAB环境下的NSGA-II算法实现资料包&#xff0c;围绕非支配排序遗传算法第二代展开&#xff0c;面向需要在科研或工程场景中处理多目标优化问题的开发者与学习者。资源共20个文件&#xff0c;以MATLAB的m脚本为主&#xff08;含初始化、非支配排序、锦标…

2026/10/20 2:52:44 阅读更多 →
前端大数据表格渲染卡顿?主线程调度、Worker 与虚拟滚动的优化实践

前端大数据表格渲染卡顿?主线程调度、Worker 与虚拟滚动的优化实践

1. 一次真实的卡顿现场&#xff1a;loading 转着转着就“冻住”了1.1 现象表现与复现路径先还原一下我当时遇到的问题。项目是一个典型的管理后台报表页&#xff0c;接口返回一张大列表&#xff0c;大概 8000 到 15000 行&#xff0c;每行有七八个字段&#xff0c;还要带状态标…

2026/10/20 2:52:44 阅读更多 →
C++ eVTOL仿真工程:六自由度动力学与控制分配实战

C++ eVTOL仿真工程:六自由度动力学与控制分配实战

简介&#xff1a;eVTOL_Simulation 是一份面向 C 学习者与仿真爱好者的轻量级项目源码&#xff0c;围绕电动垂直起降飞行器的调度场景展开。程序设定 5 家公司共 20 架飞机同时起飞&#xff0c;每架飞机拥有巡航速度、电池容量、充电时间、巡航能耗及每小时故障概率等参数&…

2026/10/20 2:52:44 阅读更多 →
STM32双串口DMA互透传:零CPU干预的硬件级直通方案

STM32双串口DMA互透传:零CPU干预的硬件级直通方案

简介&#xff1a;本资源是基于STM32CubeMX与HAL库实现的双串口DMA互透传完整工程&#xff0c;面向嵌入式初学者及STM32进阶开发者&#xff0c;解决多串口高吞吐、低CPU占用场景下的实时数据转发难题&#xff0c;适用于工业通信网关、协议转换器、传感器汇聚等典型应用。压缩包共…

2026/10/20 2:51:44 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →