当前位置: 首页 > news >正文

解决leetcode第3985题回文数组求和

3985.回文子数组求和

难度:困难

问题描述:

给你一个整数数组nums。

你的任务是找出nums中一个回文子数组的最大元素和。返回这样的子数组的最大元素和。

子数组是数组中一个连续的非空元素序列。

如果一个子数组正着读和反着读都相同,则称其为回文。

示例1:

输入:nums=[10,10]

输出:20

解释:

整个数组[10,10]是回文子数组。因此,最大元素和为10+10=20。

示例2:

输入:nums=[1,2,3,2,1,5,6]

输出:9

解释:

连续子数组[1,2,3,2,1]是回文子数组。它的元素和为1+2+3+2+1=9,并且这是最大元素和。

示例3:

输入:nums=[7,1,2,1,7,3,4,3,4]

输出:18

解释:

连续子数组[7,1,2,1,7]是回文子数组。它的元素和为7+1+2+1+7=18,并且这是最大元素和。

示例4:

输入:nums=[1,2,3,4,5]

输出:5

解释:

不存在长度大于1的回文子数组。数组中的最大元素是5,因此答案为5。

示例5:

输入:nums=[1000]

输出:1000

解释:

只包含一个元素的子数组也是回文子数组。因此,答案为1000。

提示:

1<=nums.length<=10**5

1<=nums[i]<=10**9

问题分析:

本题思路简单,首先是如何判断回文子数组,这通过函数check_if_it_is_a_palindrome_array(nums)实现,基功能是对于给定的数组nums,判断其是否为回文数组,如果是,返回True,否则返回False,其次通过一个二重循环列举出所有可能的子数组,判断其回文性,把所有的回文子数组及其和以列表的形式找出,最后输出最大和以及对应的子数组即可。

程序如下:

#检查一个数组nums是否为一个回文数组,是返回True,否返回False def check_if_it_is_a_palindrome_array(nums): return nums==nums[::-1] #主程序 nums=eval(input("enter the array nums=")) t=[] n=len(nums) for i in range(n): for j in range(i+1,n+1): s=nums[i:j] if check_if_it_is_a_palindrome_array(s): t.append([s,sum(s)]) t.sort(key=lambda x: x[1]) print(f'连续子数组{t[-1][0]}是回文子数组,它的元素和为{t[-1][1]}')

运行实例一

enter the array nums=[1,3,2,4,2,3,5]

连续子数组[3, 2, 4, 2, 3]是回文子数组,它的元素和为14

运行实例二

enter the array nums=[22,33,44,55]

连续子数组[55]是回文子数组,它的元素和为55

运行实例三

enter the array nums=[33,33]

连续子数组[33, 33]是回文子数组,它的元素和为66

运行实例四

enter the array nums=[55]

连续子数组[55]是回文子数组,它的元素和为55

http://www.jsqmd.com/news/1152637/

相关文章:

  • 选高性价比公墓设计商犯难?专业之选究竟藏在哪?
  • jsx和tsx的区别和关系是啥,后端程序员学前端
  • Boss-Key老板键:Windows隐私保护神器,一键隐藏所有敏感窗口
  • MetaTube插件:Jellyfin和Emby媒体库的终极元数据自动刮削解决方案
  • STM32/L298N 电机控制:3种隔离方案实测对比,反电动势抑制率超95%
  • 小米的设计系统,已经进化到能自己写代码了?
  • Midjourney与DALL-E中文提示工程实战对比(附18组对照测试图+Prompt调优清单):92%的设计师还在用错误语法喂模型
  • 逆向工程侦察利器:Detect It Easy文件指纹识别实战指南
  • 2026年AI培训观察:普通人选课避坑,从认清这三种需求开始
  • 计算机毕业设计之面向小微企业的简历管理系统
  • BiliNote - 强大的AI视频笔记神器(markdown 笔记 思维导图)
  • GitHub 代码仓库镜像同步到阿里云 Codeup 实施指南
  • Blender查看所有材质名称
  • 谷歌地图AI点餐技术解析:Gemini集成与智能路径规划实践
  • Buck电路CCM/DCM模式仿真对比:Multisim分析轻载振铃与假负载设计
  • openeuler/yocto-meta-qt5扩展开发:如何快速添加自定义Qt5模块和功能
  • 为什么编写提示词这么重要
  • AI研发管理是什么?从工具提效到流程重构
  • 一次Oracle服务器无法等登录的故障处理
  • 开发规范之动态库(使用与容易遗漏的部分)
  • 跨三层环境(交换机vlan/vlanif配置)
  • 师资培训丨MUSA全栈开发实战 -上海交大专场
  • 如何快速清理Unreal Engine项目:ProjectCleaner终极优化指南
  • NTRU格密码实战:从数学原理到Python实现,构建抗量子加密系统
  • 成都质量好的中央空调服务商哪家好
  • 2026年,揭秘那些备受瞩目的热门柔性填缝胶生产商!
  • 前端图片缓存优化:Base64 与 localStorage 结合方案,减少 80% 重复请求
  • 大数据毕设选题推荐:基于 Spark 挖掘的星云新能源汽车热销特征分析系统的设计与实现 基于 Spark 处理的新能源汽车销售影响因素分析系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • GPT-5的128K上下文是营销话术?Claude Fable 5在156K真实文档处理中保持92.7%语义连贯性——一线工程师压测手记
  • 厘清边界:AI编码助手与AI应用框架的“角色错位”迷思