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

黄骅市天气预报seo体系百科

黄骅市天气预报,seo体系百科,新塘网站设计,昆山建设银行网站👻创作者:丶重明 👻创作时间:2025年3月7日 👻擅长领域:运维 目录 1.😶‍🌫️题目:计算整数数组的最大子数组和2.😶‍🌫️案例资源3.😶…

👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维

目录

  • 1.😶‍🌫️题目:计算整数数组的最大子数组和
  • 2.😶‍🌫️案例资源
  • 3.😶‍🌫️代码开发
  • 4.😶‍🌫️输出结果
  • 5.😶‍🌫️代码解析:
  • 7.😶‍🌫️本文知识点
    • 7.1.😶‍🌫️math包
    • 7.2.😶‍🌫️Kadane算法
  • 8.😶‍🌫️扩展:如果数组全为负数

1.😶‍🌫️题目:计算整数数组的最大子数组和

编写一个Go语言程序 ,计算一个整数数组中的最大子数组和。

给定一个整数数组,找到具有最大和的连续子数组(至少包含一个数字),并返回其和。

2.😶‍🌫️案例资源

现有数组整数:

-2, 1, -2, 5, -5, 8, 1, -5, 4

3.😶‍🌫️代码开发

使用Go语言进行代码开发,使用 Kadane 算法,动态地维护当前子数组的和,并在每一步比较是否需要更新最大子数组和。

package mainimport ("fmt""math"
)func maxSubArray(nums []int) int {maxSum := math.MinIntcurrentSum := 0for _, num := range nums {currentSum += numif currentSum < 0 {currentSum = 0}if currentSum > maxSum {maxSum = currentSum}}return maxSum
}func main() {nums := []int{-2, 1, -2, 5, -5, 8, 1, -5, 4}result := maxSubArray(nums)fmt.Println("最大子数组和为:", result)
}

4.😶‍🌫️输出结果

保存代码,通过go run命令执行代码文件。

> go run .\8.gotest.go
最大子数组和为: 9

5.😶‍🌫️代码解析:

  1. 定义两个变量:maxSumcurrentSum

    • maxSum:用来存储当前找到的最大子数组和
    • currentSum:用来存储当前子数组的和
  2. 遍历数组,对每个元素累加到currentSum中,如果currentSum小于0,则将其重置为0,表示丢弃当前子数组,开始计算新的子数组。

  3. 在遍历过程中,每次更新maxSumcurrentSummaxSum中的最大值。

  4. 遍历结束后,maxSum即为最大子数组和。

7.😶‍🌫️本文知识点

7.1.😶‍🌫️math包

math包是Go语言标准库中的包,提供用于数学运算的常量、函数和工具。
支持基本的数学操作,如三角函数、对数运算、幂运算等,且涵盖了很多高级的数学计算需求。

// 导入math包
import "math"

如:

  • math.Pi:圆周率
  • math.E:自然常数
  • math.Pow(x, y float64) float64:返回 x 的 y 次方

更多使用方法查看官方文档。

本文中出现的math.MinInt就是 int 类型的最小值,它的具体数值取决于平台上 int 类型的位数。

它在很多算法中作为初始化值使用,确保程序可以在后续处理中更新为正确的结果。

7.2.😶‍🌫️Kadane算法

Kadane算法是一种用于高效解决最大子数组和问题的动态规划算法。其核心思想是通过遍历数组并维护两个关键变量:当前子数组的最大和及全局最大和,从而在线性时间复杂度内找到结果。

以本文的一组数字为例:

-2, 1, -2, 5, -5, 8, 1, -5, 4

第一个元素为-2,小于0,根据文中代码设定,小于0时currentSum = 0currentSum > maxSum,所以maxSum = 0

第二个元素为1currentSum >= 0,所以currentSum = 1,根据文中代码设定,所以maxSum = 1

// 计算方式
currentSum += 10 + 1 = 1

以此类推,最后可以得出最大子数组和 9,对应子数组[8, 1]

8.😶‍🌫️扩展:如果数组全为负数

对于全负数数组(如 [-3, -1, -2]),我们需要确保算法能正确返回最大的单个负数(本例中为 -1),请自行尝试。

同系列:

上一篇:【Go每日一练】实现简单的控制台计算器

http://www.dtcms.com/wzjs/45294.html

相关文章:

  • 有一个做搞笑英语视频网站长尾关键词是什么意思
  • 上海做网站报价深圳竞价排名网络推广
  • 设计师素材网站e谷歌搜索引擎大全
  • php是什么seo快速收录快速排名
  • 手机网站吧seo管理系统培训运营
  • 怎么在网站做系统百度竞价项目
  • ppt可以做网站吗关键词挖掘工具有哪些
  • 如何做农产品网站谷歌seo网站建设
  • 搜索引擎提交网站百度top风云榜
  • 网站怎么做要多少钱百度热搜大数据
  • 企业网站服务器托管小程序推广的十种方式
  • 泉州网站建设方案外包沈阳优化网站公司
  • 个人网站首页导航栏ps制作教程一键优化下载安装
  • 网站开发 项目的人员分配网站设计优化
  • 企业官网建设_创意网站建设互联网营销平台
  • 互联网运营网站网站关键词优化方法
  • 零基础怎么做网站竞价托管哪家专业
  • 专业模板建站服务近期的新闻热点
  • 石家庄站客服电话网站更换服务器对seo的影响
  • 品牌网站建设方案ppt营销推广有哪些公司
  • 门户网站有哪些推广分类跨境电商seo
  • 提供完善政府网站建设外链吧怎么使用
  • 个人网站源码php广告投放平台有哪些
  • 有什么做衣服的网站吗营销策划案例
  • 西安三桥网站建设网站链接交易
  • 成都网站建设麦格思百度做广告多少钱
  • git wordpress中文免费主题长春seo技术
  • 淘宝刷网站建设免费b2b信息发布网站
  • 校园网站群建设成人教育培训机构
  • 建设网上银行个人网上银行登北京核心词优化市场