力扣:53. 最大子数组和
解题思路:
1.先把数组为空和数组的长度为1时的特殊情况分别开来。声明一个sum变量用于计算数组中的连续子数组的总和值 。在声明一个guo变量用于一种接收sum中的前i-1的总和。另一种接收sum中前i的总和,主要根据sum的值来判断是接收的哪一种。在声明一个guo变量用于接收最大和的连续子数组的值。
2.在遍历过程中要把sum分情况来进行赋值和更新。如果当前i-1的sum值小于o,为负数时就抛弃前i-1的sum值,把nums【i】的值复制给sum。如果当前i-1的sum值大于0,我们就要更新sum值来判断是前i-1的sum值大还是前i的sum值大。之后再来更新连续最大和。我写这题时我敢觉的思路有点抽向和奇特,一股脑的写下去,所以我不知道这个解法属于哪一类算法。
class Solution {public int maxSubArray(int[] nums) {//数组为空时if(nums.length<1){return 0;}//数组的长度为1时if(nums.length==1){return nums[0];}//计算数组中的连续子数组的总和值int sum=nums[0];//一种接收sum中的前i-1的总和。另一种接收sum中前i的总和。主要根据sum的值来判断是接收的哪一种。int guo=0;//接收最大和的连续子数组的值int max=nums[0];for(int i=1;i<nums.length;i++){//把前i-1的sum值赋值给guoguo=sum;//判断前i-1的sum值小于o,为负数时就抛弃前i-1的sum值if(sum<0){//把nums【i】的值复制给sumsum=nums[i];//来更新连续最大和max=Math.max(max,sum);continue;}//如果前i-1的sum值大于0,我们就要更新sum值来判断是前i-1的sum值大还是前i的sum值大sum+=nums[i];//判断是前i-1的sum值大还是前i的sum值大。括号中的guo为前i-1的zum值guo=Math.max(guo,sum);//来更新连续最大和max=Math.max(max,guo);}return max;}
}
动态规划解法;
1.先把数组为空和数组的长度为1时的特殊情况分别开来,之后声明一个dp数组表示下标为i时的连续最大和,初始化dp数组的值为nums[0],递推公式为dp[i]=Math.max(dp[i-1]+nums[i],nums[i]),
判断是前i的dp数组值大还是当前nums[i]的值大,赋值给dp数组dp[i]。最后来更新连续最大和
class Solution {public int maxSubArray(int[] nums) {//数组为空时if(nums.length<1){return 0;}//数组的长度为1时if(nums.length==1){return nums[0];}//声明dp数组,dp数组表示下标为i时的连续最大和int dp[]=new int [nums.length];//初始化dp数组dp[0]=nums[0];//接受最大和值int max=nums[0];//for循环遍历来进行推导后面的dp数组的值for(int i=1;i<nums.length;i++){//递推公式dp[i]=Math.max(dp[i-1]+nums[i],nums[i]);//判断最大值和对比最大值max=Math.max(dp[i],max);}return max;}
}
相关文章:
力扣:53. 最大子数组和
解题思路: 1.先把数组为空和数组的长度为1时的特殊情况分别开来。声明一个sum变量用于计算数组中的连续子数组的总和值 。在声明一个guo变量用于一种接收sum中的前i-1的总和。另一种接收sum中前i的总和,主要根据sum的值来判断是接收的哪一种。在声明一个…...
幻兽帕鲁Palworld专用服务器CPU内存配置怎么选择?
腾讯云幻兽帕鲁服务器配置怎么选?根据玩家数量选择CPU内存配置,4到8人选择4核16G、10到20人玩家选择8核32G、2到4人选择4核8G、32人选择16核64G配置,腾讯云百科txybk.com来详细说下腾讯云幻兽帕鲁专用服务器CPU内存带宽配置选择方法ÿ…...
学习总结11
KMP算法 全称Knuth-Morris-Pratt算法,是一种字符串匹配算法。该算法的目的是在一个文本串S内查找一个模式串P的出现位置。 KMP算法的核心思想是利用模式串自身的特性来避免不必要的字符比较。算法通过构建一个部分匹配表(也称为next数组)&a…...
Hadoop运行环境搭建
模板虚拟机环境准备 1)准备一台模板虚拟机hadoop100,虚拟机配置要求如下: 模板虚拟机:内存4G,硬盘50G,安装必要环境,为安装hadoop做准备 [roothadoop100 ~]# yum install -y epel-release [r…...
CTFshow web(php命令执行59-67)
web59 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 22:02:47 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗? if(isset($_POST…...
03、全文检索 -- Solr -- Solr 身份验证配置(给 Solr 启动身份验证、添加用户、删除用户)
目录 全文检索 -- Solr -- Solr 身份验证配置启用身份验证:添加用户:删除用户: 全文检索 – Solr – Solr 身份验证配置 学习之前需要先启动 Solr 执行如下命令即可启动Solr: solr start -p <端口>如果不指定端口…...
怎么使用ChatGPT提高工作效率?
怎么使用ChatGPT提高工作效率,这是一个有趣的话题。 相信不同的人有不同的观点,大家的知识背景和从事的工作都不完全相同,所以最终ChatGPT能起到的作用也不一样。 在编程过程中,如果我们要找一个库,我们最先做的肯定…...
【微服务】skywalking自定义告警规则使用详解
目录 一、前言 二、SkyWalking告警功能介绍 2.1 SkyWalking告警是什么 2.2 为什么需要SkyWalking告警功能 2.2.1 及时发现系统异常 2.2.2 保障和提升系统稳定性 2.2.3 避免数据丢失 2.2.4 提高故障处理效率 三、 SkyWalking告警规则 3.1 SkyWalking告警规则配置 3.2 …...
BUGKU-WEB 矛盾
题目描述 进入场景看看: 代码如下: $num$_GET[num]; if(!is_numeric($num)) { echo $num; if($num1) echo flag{**********}; }解题思路 需要读懂一下这段PHP代码的意思明显是一道get相关的题目,需要提供一个num的参数,然后需要传入一个不…...
2024-02-11 Unity 编辑器开发之编辑器拓展2 —— 自定义窗口
文章目录 1 创建窗口类2 显示窗口3 窗口事件回调函数4 窗口中常用的生命周期函数5 编辑器窗口类中的常用成员6 小结 1 创建窗口类 当想为 Unity 拓展一个自定义窗口时,只需实现继承 EditorWindow 的类即可,并在该类的 OnGUI 函数中编写面板控件相关的…...
Python 读取pdf文件
Python 实现读取pdf文件简单示例。 安装命令 需要安装操作pdf的三方类库,命令如下: pip install pdfminer3K 安装过程如下: 引入类库 需要引入很多的类库。 示例如下: import sys import importlib importlib.reload(sys)fr…...
人究其一生只是在通用智能模型基础上作微调和对齐
Yann LeCun 在 WGS 上说: 目前的LLM不可能走到AGI,原因很简单,现在训练这些LLM所使用的数据量为10万亿个令牌,也就是130亿个词,如果你计算人类阅读这些数据需要多长时间,一个人每天阅读8小时,需…...
DS:二叉树的链式结构及实现
创作不易,友友们给个三连吧!! 一、前言 前期我们解释过二叉树的顺序结构(堆)为什么比较适用于完全二叉树,因为如果用数组来实现非完全二叉树,那么数组的中间部分就可能会存在大量的空间浪费。 …...
PhP+vue企业原材料采购系统_cxg0o
伴随着我国社会的发展,人民生活质量日益提高。互联网逐步进入千家万户,改变传统的管理方式,原材料采购系统以互联网为基础,利用php技术,结合vue框架和MySQL数据库开发设计一套原材料采购系统,提高工作效率的…...
C++线程池
原因 如果线程的数量很多,频繁的创建和销毁线程会降低系统的效率。线程池可以使线程复用。 using typedef 内联函数和宏定义区别: 内联函数代替部分#define宏定义;代替普通函数,提高程序效率...
SpringCloud-Hystrix:服务熔断与服务降级
8. Hystrix:服务熔断 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免失败! 8.1 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服…...
浅谈Linux环境
冯诺依曼体系结构: 绝大多数的计算机都遵守冯诺依曼体系结构 在冯诺依曼体系结构下各个硬件相互配合处理数据并反馈结果给用户 其中控制器和运算器统称为中央处理器(CPU),是计算机硬件中最核心的部分,像人类的大脑操控…...
Spring 用法学习总结(一)之基于 XML 注入属性
百度网盘: 👉 Spring学习书籍链接 Spring学习 1 Spring框架概述2 Spring容器3 基于XML方式创建对象4 基于XML方式注入属性4.1 通过set方法注入属性4.2 通过构造器注入属性4.3 使用p命名空间注入属性4.4 注入bean与自动装配4.5 注入集合4.6 注入外部属性…...
免费软件推荐-开源免费批量离线图文识别(OCR)
近期要批量处理图片转电子化,为了解决这个世纪难题,试了很多软件(华为手机自带OCR识别、 PandaOCR、天若OCR、Free OCR)等软件,还是选择了这一款,方便简单 一、什么是OCR? 光学字符识别(Opt…...
2 scala集合-元组和列表
1 元组 元组也是可以存放不同数据类型的元素,并且最重要的是,元组中的元素是不可变的。 例如,定义一个元组,包含字符串 hello,数字 20。如果试图把数字 20 修改为 1,则会报错。 scala> var a ("…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...
