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

提供网站建设搭建软文网站大全

提供网站建设搭建,软文网站大全,网站建设的项目方案模板,浙江网站建设和制作一. 简介 本文记录力扣网上涉及数组方面的编程题,主要以 C语言实现。 二. 力扣上C语言编程题:最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其…

一. 简介

本文记录力扣网上涉及数组方面的编程题,主要以 C语言实现。

二. 力扣上C语言编程题:最大子数组和

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

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

提示:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104

示例1:

输入: nums = [-2,1,-3,4,-1,2,1,-5,4]

输出:6

解释:连续子数组为 [4, -1, 2, 1] 的和最大,其和为 6

示例2:

输入: nums = [1]

输出:1

解题思路:

使用贪心解法。什么是贪心解法?

“贪心解法”(Greedy Algorithm)是一种在算法设计中常用的策略,它通过每一步选择当前状态下局部最优解(即最有利的选择),期望通过这样的方式最终得到全局最优解。

贪心算法的核心是:每一步都做出局部最优的选择,希望通过局部最优解达到全局最优解。

局部最优:当前 “连续和” 为负数时立刻放弃,从下一个元素重新计算 “连续和” ,因为负数加上下一个元素 “连续和”只会越来越小。

全局最优:选取最大“连续和”

具体方法:

(1) 遍历数组,如果前面数组和小于 0,则从 nums[i] 开始重新新一轮求和计算;(因为数组和为负数时,再加下一个元素,只会让总和变小,即都会加重负担);

(2) 每次记录数组和的最大值;

C代码实现如下:

int maxSubArray(int* nums, int numsSize) {if ((!nums) || (numsSize == 0)) {return -1;}int i = 0;int prev_sums = nums[0];int max_sums = nums[0];//下标从1开始遍历for(i = 1; i < numsSize; i++) { if(prev_sums < 0) { //如果前面数组和小于0,则从nums[i]重新开始计数prev_sums = nums[i];}else { //前面数组和 >=0,则继续加nums[i]prev_sums = prev_sums + nums[i];}//每次更新子数组和的最大值if(prev_sums > max_sums) {max_sums = prev_sums;}}return max_sums;
}

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

相关文章:

  • 建设部网站查询注册岩土工程师查关键词
  • 项目流程八个阶段怎么优化关键词排名优化
  • 重庆工厂网站建设seo的优化技巧和方法
  • 动易网站制作教程百度引擎搜索推广
  • 西红柿怎么做网站域名交易中心
  • 前端做网站百度开户联系方式
  • 松江网站关键词优化在线代理浏览网站
  • 免费网站建设培训班百度关键词搜索怎么做
  • dnf怎么做盗号网站重庆seo俱乐部联系方式
  • 合肥网站制作价格免费制作网站
  • 长春网站业务哪个公司好seo网站诊断顾问
  • wordpress 在线视频seo经典案例分析
  • 蓝色大气企业网站模板企业网站建设方案策划书
  • 建设网站包括哪些灰色词seo排名
  • 如何给网站做脚本网络推广seo教程
  • 怎么做网站省钱太原今日头条
  • wordpress 形式php苏州seo怎么做
  • 北京市顺义区住房和建设委员会网站自己可以做网站吗
  • 网站首页没排名但内页有排名百度新闻头条
  • 网站公司提供程序百度app广告
  • 安全邮箱注册网站引流获客工具
  • 厦门关键词推广优化seo查询排名软件
  • 做电影网站要不要收费的申请自己的网站
  • linux主网站设计上海发布最新情况
  • 做网站+广告费+步骤沈阳网络关键词排名
  • 广州手机网站建设公司如何网上免费做推广
  • 深圳网站建设资讯网络营销专业
  • 简述网页与网站的区别企业邮箱
  • 域名做网站云搜索引擎入口
  • 做网站小程序源码外链代发软件