每日OJ题_牛客_连续子数组最大和_线性dp_C++_Java

devtools/2024/10/21 21:34:07/

目录

牛客_连续子数组最大和_线性dp

题目解析

C++代码

Java代码


牛客_连续子数组最大和_线性dp

连续子数组最大和_牛客题霸_牛客网 (nowcoder.com)

描述:

        给定一个长度为 n的数组,数组中的数为整数。请你选择一个非空连续子数组,使该子数组所有数之和尽可能大,子数组最小长度为1。求这个最大值。


题目解析

  • 状态表示: dp[i] 表示:以 i 位置为结尾的所有子数组中,最大和是多少。
  • 状态转移方程: dp[i] = max(dp[i - 1] + arr[i], arr[i])

C++代码

#include <iostream>
#include <vector>
using namespace std;int main()
{int n = 0;cin >> n;vector<int> a(n);for(int i = 0; i < n; ++i){cin >> a[i];}vector<int> dp(n);int res = a[0];dp[0] = a[0];for(int i = 1; i < n; ++i){dp[i] = max(dp[i - 1] + a[i], a[i]);res = max(res, dp[i]);}cout << res << endl;return 0;
}

Java代码

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int[] arr = new int[n + 1];int[] dp = new int[n + 1];for(int i = 1; i <= n; i++){arr[i] = in.nextInt();}int ret = -101;for(int i = 1; i <= n; i++){dp[i] = Math.max(dp[i - 1], 0) + arr[i];ret = Math.max(ret, dp[i]);}System.out.println(ret);}
}

http://www.ppmy.cn/devtools/127658.html

相关文章

Pandas | 通过PUBG数据集进行数据分析并理解函数使用

PUBG数据分析 PUBG数据集train 数据分析iloc和loc 过滤参数人数少的比赛duplicated().count() 和 transform(count)countplot绘图函数 补充&#xff1a;查看判断pd的某一列是否没有重复值方法 1: 使用 duplicated() 方法方法 2: 使用 nunique() 方法方法 3: 使用 value_counts(…

等保测评:如何进行有效的安全合规性审查

等保测评&#xff08;信息安全等级保护测评&#xff09;是一项至关重要的安全合规性审查工作&#xff0c;旨在帮助组织保障信息系统的安全性、合规性&#xff0c;有效应对安全风险&#xff0c;提升整体安全防护水平。下面将从等保测评的流程、意义、应用场景&#xff0c;以及实…

R语言机器学习教程大纲

文章目录 介绍机器学习算法监督学习Supervised Learning分类Classification回归Regression 无监督学习 Unsupervised Learning聚类 Clustering降纬 Dimensionality Reduction相关Association 强化学习Reinforcement Learning模型自由 Model-Free Methods模型驱动 Model-Based M…

Maven--简略

简介 Apache旗下的一款开源项目&#xff0c;用来进行项目构建&#xff0c;帮助开发者管理项目中的jar及jar包之间的依赖&#xff0c;还拥有项目编译、测试、打包的功能。 管理方式 统一建立一个jar仓库&#xff0c;把jar上传至统一的仓库&#xff0c;使用时&#xff0c;配置…

【GIT】.gitignore文件的使用

使用 Visual Studio 开发项目&#xff0c;并使用 Git 将项目推送到 GitLab 时&#xff0c;有一些文件是自动生成的、特定于开发环境的文件&#xff0c;通常不应该被推送到远程仓库。这就是 .gitignore 文件的作用&#xff0c;它可以告诉 Git 忽略这些文件或文件夹。 1. 哪些文…

【Android】Jetpack入门知识总结(LifeCycle,ViewModel,LiveData,DataBinding等)

文章目录 LifeCycle使用Lifecycle解耦页面与组件自定义控件实现LifecycleObserver接口注册生命周期监听器 使用LifecycleService解耦Service与组件使用ProcessLifecycleOwner监听应用程序生命周期 ViewModel用法在 Fragment 中使用 ViewModel LiveDataDataBinding导入依赖基本用…

《vue leaflet学习实践笔记》

目录 vue leaflet学习实践笔记 vue leaflet学习实践笔记

【算法】---栈与队列基础

前置准备 数据结构篇&#xff1a;学习过栈与队列这两种基本数据结构 前面会迅速回顾栈与队列的使用 本篇以Java为主&#xff0c; 其它语言可自行对应内置的栈与队列容器。 栈 栈是一种后进先出的容器。 如下图&#xff0c; 栈只有一个开口。 栈顶&#xff1a;栈的开口处&a…