Day 80

题目描述

在这里插入图片描述

思路

初次做法:在昨天代码的基础上修改

  1. 计算普通子数组的最大和
    使用动态规划计算以每个位置为起点的最大子数组和(存储在 val 中),并更新全局最大值 rightmax。
  2. 计算后缀和与前缀和
    sum[i]:从位置 i 到数组末尾的元素和。
    left[i]:从数组开头到位置 i 的元素和。
  3. 处理环形情况
    对于每个可能的分割点 j,计算环形子数组的最大和:
    将数组分成两部分:[0, j] 和 [j+1, n-1]。
    环形子数组的和为 left[j] + max(右侧后缀和),其中右侧后缀和通过遍历 sum 数组计算
class Solution {public int maxSubarraySumCircular(int[] nums) {int[] val = new int[nums.length*2];int[] sum = new int[nums.length];int[] left = new int[nums.length];int rightmax=nums[nums.length-1];val[nums.length-1]=nums[nums.length-1];for(int i= nums.length-2;i>=0;i--){int x=val[i+1]+nums[i];if(x>nums[i]){val[i]=x;}else{val[i]=nums[i];}if(val[i]>rightmax){rightmax=val[i];}}sum[nums.length-1]=nums[nums.length-1];for (int i = nums.length-2; i>=0; i--) {sum[i]=nums[i]+sum[i+1];}left[0]=nums[0];for (int i = 1; i < nums.length; i++) {left[i]=left[i-1]+nums[i];}for(int i=nums.length;i<nums.length*2-1;i++){int j=i%nums.length;int max=-1000;for(int k=nums.length-1;k>j;k--){max=Math.max(max,sum[k]);}val[i]=max+left[j];if(val[i]>rightmax){rightmax=val[i];}}return rightmax;}
}

超时了
在这里插入图片描述
优化思路

  1. 使用 Kadane 算法:维护一个变量pre,记录以当前元素结尾的最大子数组和,同时更新全局最大和res。
    预处理最大前缀和数组leftMax
    leftMax[i] 表示从数组开头到索引i的最大前缀和。
    例如,数组[1, -2, 3]的leftMax为[1, 1, 2](前缀和分别为1, -1, 2,取最大值)。
  2. 枚举后缀并结合最大前缀
    从右向左遍历数组,累加后缀和rightSum。
    对于每个位置i,环形子数组的最大和为 当前后缀和 + 之前的最大前缀和(即rightSum + leftMax[i-1])。
    结果比较
    最终结果取普通子数组的最大和与环形子数组的最大和中的较大值。
class Solution {public int maxSubarraySumCircular(int[] nums) {if(nums.length==0){return 0;}int nos=no(nums);int[]left=new int[nums.length];left[0]=nums[0];int leftsum=nums[0];for(int i=1;i<nums.length;i++){leftsum+=nums[i];left[i]=Math.max(left[i-1],leftsum);}//求最大前缀和int rightsum=0;int max=-100000;for(int i=nums.length-1;i>0;i--){rightsum+=nums[i];max=Math.max(max,rightsum+left[i-1]);//拆为前缀+后缀}return Math.max(nos,max);}public int no(int[]nums){//处理不用环的最大子数组和int leftmax=nums[0];int leftbe=nums[0];for(int i=1;i<nums.length;i++){int x=leftbe+nums[i];if(x>nums[i]){leftbe=x;}else{leftbe=nums[i];}if(leftbe>leftmax){leftmax=leftbe;}}return leftmax;}
}

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

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

相关文章

python类Keys

类Keys的定义:Elass Keys (object): 程轩开Set of special keys codes.#n# 第 15 章 网络爬虫 合情些准出照地限公轵 esms0 pro 瘀 Δ器代刍奄炖慧 图 15-39 工件肉业鱼光得 国有上子 理人场营&#xff0c;有司;可有B 相关围书 图 15-40 页源代码 ython". 名可能不鞋 NUL…

svn如何设置忽略文件夹或者文件的提交

使用svn&#xff0c;每次提交代码时&#xff0c;都会把java的编译文件target&#xff0c;或者前端的node_modules&#xff0c;dist等不需要提交的目录或这文件&#xff0c;列出来实现。通过配置svn&#xff0c;可以在提交代码时&#xff0c;自动忽略这些不需要提交到仓库的文件…

MonoGame 游戏开发框架日记 -06

第六章&#xff1a;动画类以及动画精灵 好久不见家人们好久没更新MonoGame系列了&#xff0c;不是主包弃坑了&#xff0c;主要是主包最近忙着搞项目学科一找暑假工打&#xff0c;这不一闲下来就立刻马不停蹄的来给大家更新了&#xff0c;今天的教程代码部分比较多接下来我们正式…

LVS四种工作模式深度解析

LVS&#xff08;linux virual server&#xff09;LVS四种工作模式深度解析 LVS-NAT模式 四台虚拟机 火墙关闭 关闭火墙 systemctl stop firewalldsystemctl disable firewalld关闭开机自启火墙1.clienteth0 IP&#xff1a;172.25.254.1002.lvs eth0ip :172.25.254.200; eth1ip:…

[设计模式]C++单例模式的几种写法以及通用模板

之前在这篇文章中简单的介绍了一下单例模式的作用和应用C中单例模式详解_c单例模式的作用-CSDN博客&#xff0c;今天我将在在本文梳理单例模式从C98到C11及以后的演变过程&#xff0c;探讨其不同实现方式的优劣&#xff0c;并介绍在现代C中的最佳实践。 什么是单例模式&#x…

小架构step系列19:请求和响应

1 概述作为Web程序&#xff0c;通用形式是发起HTTP请求并获取返回的结果&#xff0c;在这个过程中&#xff0c;需要把请求映射到代码的接口上&#xff0c;提供这种接口的类一般称为Controller&#xff0c;也就是需要把请求映射到Controller的接口方法上&#xff0c;把请求的参数…

论文分享 | LABRADOR:响应引导的针对物联网设备的黑盒模糊测试

由于固件仿真以及重托管的技术挑战&#xff0c;部分企业级 IoT 设备只能在黑盒环境下进行模糊测试。分享一篇发表于 2024 年 S&P 会议的论文 Labrador&#xff0c;它利用响应来引导请求变异&#xff0c;实现了针对 IoT 设备的高效黑盒模糊测试。 猴先生说&#xff1a;这篇论…

WPF为启动界面(Splash Screen)添加背景音乐

1. 添加音频文件到项目 将音频文件&#xff08;如.mp3/.wav&#xff09;放入项目文件夹&#xff08;如Resources&#xff09;在解决方案资源管理器中右键文件 → 属性&#xff1a; 生成操作&#xff1a;选择Resource&#xff08;嵌入资源&#xff09;或Content&#xff08;内容…

【Jmeter】报错:An error occured:Unknown arg

问题 调试Jmeter时&#xff0c;报错&#xff1a;‘An error occurred: Unknown arg: l’&#xff0c;脚本如下&#xff1a; $JMETER_PATH -n -t "$target_jmx" -l "$SCENARIO_REPORT_DIR/result_${threads}.jtl" -e -o "$SCENARIO_REPORT_DIR/htm…

vue3使用KeepAlive组件及一些注意事项

目录 一、KeepAlive的作用 二、缓存组件配置 2.1、过滤缓存组件 2.2、最大缓存实例数 三、KeepAlive组件的生命周期 四、错误用法 4.1、缓存v-if包裹的动态组件 4.2、拼写错误 一、KeepAlive组件的作用 首先&#xff0c;keep-alive是一个vue的内置组件&#xff0c;官网…

辛普森悖论

辛普森悖论第一步&#xff1a;概念拆解想象你在比较两个班级的考试成绩&#xff1a;​第一天​&#xff1a;实验组&#xff08;1个学生考了90分&#xff09;&#xff0c;对照组&#xff08;99个学生平均考了80分&#xff09;​第二天​&#xff1a;实验组&#xff08;50个学生平…

有效的括号数据结构oj题(力口20)

目录 目录 题目描述 题目分析解析 解决代码 写题感悟&#xff1a; 题目描述 还有实例 题目分析解析 对于这个题目&#xff0c;我们首先有效字符串需要满足什么&#xff0c;第一个左右括号使用相同类型的括号&#xff0c;这好理解&#xff0c;无非就是小括号和小括号大括号…

Mock 单元测试

作者&#xff1a;小凯 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01; 本文的宗旨在于通过简单干净实践的方式教会读者&#xff0c;如何使用 Mock (opens new window)进行工程的单元测试&#xff0c;以便于验证系统中的独立模块功能的健壮性。 从整个工程所…

MySQL 深度性能优化配置实战指南

🔧 一、硬件与系统层优化:夯实性能基石 ​​硬件选型策略​​ ​​CPU​​:读密集型场景选择多核CPU(如32核);写密集型场景选择高主频CPU(如3.5GHz+)。 ​​内存​​:建议≥64GB,​​缓冲池命中率≥99%​​ 是性能关键指标。 ​​存储​​:​​必用NVMe SSD​​,I…

Visual Studio Code(VSCode)中设置中文界面

在VS Code中设置中文界面主要有两种方法&#xff1a;通过扩展市场安装中文语言包或通过命令面板直接切换语言。‌方法一&#xff1a;通过扩展市场安装中文语言包‌打开VS Code&#xff0c;点击左侧活动栏的"扩展"图标&#xff08;或按CtrlShiftX&#xff09;。在搜索…

叉车机器人如何实现托盘精准定位?这项核心技术的原理和应用是什么?

随着智慧物流和智能制造的加速发展&#xff0c;智能化转型成为提升效率、降低成本的关键路径&#xff0c;叉车机器人&#xff08;AGV/AMR叉车&#xff09;在仓储、制造、零售等行业中的应用日益广泛。 其中&#xff0c;托盘定位技术是实现其高效、稳定作业的核心环节之一&…

NO.6数据结构树|二叉树|满二叉树|完全二叉树|顺序存储|链式存储|先序|中序|后序|层序遍历

树与二叉树的基本知识 树的术语结点&#xff1a; 树中的每个元素都称为结点&#xff0c; 例如上图中的 A,B,C…根结点&#xff1a; 位于树顶部的结点&#xff0c; 它没有父结点,比如 A 结点。父结点&#xff1a; 若一个结点有子结点&#xff0c; 那么这个结点就称为其子结点的父…

数据集下载网站

名称简介链接Kaggle世界上最大的数据科学竞赛平台之一&#xff0c;有大量结构化、图像、文本等数据集可直接下载✅支持一键下载、APIPapers with Code可按任务&#xff08;如图像分类、文本生成等&#xff09;查找模型与数据集&#xff0c;标注 SOTA✅与论文强关联Hugging Face…

Tomcat 生产 40 条军规:容量规划、调优、故障演练与安全加固

&#xff08;一&#xff09;容量规划 6 条 军规 1&#xff1a;线程池公式 maxThreads ((并发峰值 平均 RT) / 1000) 冗余 20 %&#xff1b; 踩坑&#xff1a;压测 2000 QPS、RT 200 ms&#xff0c;理论 maxThreads500&#xff0c;线上却设 150 导致排队。军规 2&#xff1a;…

深入解析 Amazon Q:AWS 推出的企业级生成式 AI 助手

在人工智能助手竞争激烈的当下&#xff0c;AWS 重磅推出的 Amazon Q 凭借其强大的企业级整合能力&#xff0c;正成为开发者提升生产力的新利器。随着生成式 AI 技术席卷全球&#xff0c;各大云厂商纷纷布局智能助手领域。在 2023 年 re:Invent 大会上&#xff0c;AWS 正式推出了…