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

JAVA练习51-最大子数组和

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、题目-最大子数组和

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

2月15日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目-最大子数组和

1.题目描述

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组 是数组中的一个连续部分。

示例 1:

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。


示例 2:

输入:nums = [1]
输出:1


示例 3:

输入:nums = [5,4,-1,7,8]
输出:23

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-subarray
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.思路与代码

2.1 思路

1.创建两个指针,指针curr为子数组和,max为最大子数组和

2.将数组的第一个值赋值为curr和max

3.for循环,将curr与数组后续值相加;先判断curr是否小于0,如果curr小于0,则将其赋值为0,并与后续数组值相加

4.判断curr与max的大小,并取最大值

5.输出最大值

2.2 代码

代码如下(示例):

class Solution {public int maxSubArray(int[] nums) {//创建两个指针int curr = nums[0];     //临时最大值int max = nums[0];      //最大值//遍历数组for(int i = 1;i < nums.length;i ++){//如果curr为负数,则直接将curr变为0,//curr与nums【i】相加curr = Math.max(curr,0) + nums[i];//最大值与curr比较max = Math.max(curr,max);}return max;}
}


总结

提示:这里对文章进行总结:
 

http://www.lryc.cn/news/7907.html

相关文章:

  • Inception Transformer
  • 10分钟学会数据库压力测试,你敢信?
  • 论文阅读 | Video Super-Resolution Transformer
  • 7-6 带头节点的双向循环链表操作
  • npm publish 、 npm adduser 提示 403 的问题
  • Java 8的函数式接口使用示例
  • 2023年企业如何改善员工体验?为什么员工体验很重要?
  • 设计模式:桥接模式让抽象和实现解耦,各自独立变化
  • C++学习记录——십 STL初级认识、标准库string类
  • 【redis】redis缓存与数据库的一致性
  • XCP实战系列介绍12-基于Vector_Davinci工具的XCP配置介绍(一)
  • Unity Material详解
  • 碰撞检测算法分类
  • 代码随想录第十二天(
  • 电源模块 DC-DC直流升压正负高压输出12v24v转±110V±150V±220V±250V±300V±600V
  • 【动画图解】这个值取对了,ViewPager2才能纵享丝滑
  • CSDN每日一练:小豚鼠搬家
  • Dockerfile命令及实践构建一个网站
  • [VMware]Ubuntu18.04 网络图标消失
  • 国产C2000,P2P替代TMS320F280049C,独立双核32位CPU,主频高达400MHz
  • 二十五、Gtk4-多线程分析
  • JVM基础学习
  • ASML逆袭史:人、资金、技术,缺一不可
  • MongoDB 覆盖索引查询
  • Flink Checkpoint 中的Aligned Checkpoint 和 Unaligned Checkpoint
  • C++快速入门
  • ubuntu18.04 network有线网络图标缺失解决记录
  • java对象克隆和面向对象的设计原则
  • 传透式血氧仪设计方案
  • 让逆向工程师们头疼的代码混淆,就像永远也走不出的“浪浪山”