C语言求连续最大子数组和的方法
本文实例讲述了C语言求连续最大子数组和的方法,是非常实用的技巧。分享给大家供大家参考。
具体实现方法如下:
#include <iostream> using namespace std; int array[] = {1, -2, 3, 10, -4, 7, 2, -5}; //int array[] = {-10, -1, -2, -3, -4, -5}; const int size = sizeof array / sizeof *array; int maxSubArray(int *array, int size) { int max = -(1 << 31); int sum = 0; int index = 0; while (index < size) { sum += array[index]; if (sum > max) { max = sum; cout << "max: " << max << endl; } if (sum < 0) sum = 0; index++; } return max; } int main() { int index = maxSubArray(array, size); cout << "index: " << index << endl; }
希望本文所述对大家C程序算法设计的学习有所帮助。
相关推荐
-
php数组函数序列之array_sum() - 计算数组元素值之和
array_sum()定义和用法 array_sum() 函数返回数组中所有值的总和. 如果所有值都是整数,则返回一个整数值.如果其中有一个或多个值是浮点数,则返回浮点数. PHP 4.2.1 之前的版本修改了传入的数组本身,将其中的字符串值转换成数值(大多数情况下都转换成了零,根据具体制而定). 语法 array_sum(array) 参数 描述 array 必需.规定输入的数组. 例子1 复制代码 代码如下: <?php $a=array(0=>"5",1=>&q
-
求最大子数组之和的方法解析(2种可选)
问题描述:一个有n个元素的数组,这n个元素可以是正数也可以是负数,求最大子数组的和. 方法1:蛮力法 思路:最简单也是最容易想到的方法就是找出所有子数组,然后求所有子数组的和,在所有子数组的和中取最大值. /** * 方法1(蛮力法):两次循环求最大子数组之和 */ public static int maxSubArray1(int[] a){ int i,j; int ThisSum=0; int MaxSum=0; for (i = 0; i < a.length; i++) { This
-
C语言求连续最大子数组和的方法
本文实例讲述了C语言求连续最大子数组和的方法,是非常实用的技巧.分享给大家供大家参考. 具体实现方法如下: #include <iostream> using namespace std; int array[] = {1, -2, 3, 10, -4, 7, 2, -5}; //int array[] = {-10, -1, -2, -3, -4, -5}; const int size = sizeof array / sizeof *array; int maxSubArray(int
-
python+numpy按行求一个二维数组的最大值方法
问题描述: 给定一个二维数组,求每一行的最大值 返回一个列向量 如: 给定数组[1,2,3:4,5,3] 返回[3:5] import numpy as np x = np.array([[1,2,3],[4,5,3]]) # 先求每行最大值得下标 index_max = np.argmax(x, axis=1)# 其中,axis=1表示按行计算 print(index_max.shape) max = x[range(x.shape[0]), index_max] print(max) # 注
-
C语言求阶乘之和的三种实现方法(先阶乘再累加)
目录 题目: 方法一:使用一层for循环实现 代码简单快捷容易理解 方法二:使用两层for循环嵌套 方法三:函数递归实现 总结 题目: 此处题目是以1-20的阶乘之和举例 方法一:使用一层for循环实现 代码简单快捷容易理解 代码示例如下: #include<stdio.h> int main() { double a = 1, sum = 0;//因为最后值可能会超出int所能接收的范围 故用double int n, i; scanf("%d", &n);//注
-
C语言实现删除某一个数组值的方法
目录 1.前言 2.删除数组中的元素 1.前言 在家里闲着还是闲着,这几天见证了Python各种数据结构的强大.Python中的数据类型如:列表.元组.字典等都具有其的特点.列表无需要设定其的长度,我们可以随机插入元素,同时元素的类型也是随意的. 或许这就是面向对象语言的强大,C语言做为面向过程的语言自然没有如同Python一般强大的功能.学习C语言不会指针和结构体确实玩不出什么东西,就例次CCF考试的字符串处理题使用C语言难度都很大,但是使用诸如C++一样面向对象的语言都是能轻而易举地解决问题
-
C++实现LeetCode(152.求最大子数组乘积)
[LeetCode] 152. Maximum Product Subarray 求最大子数组乘积 Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product. Example 1: Input: [2,3,-2,4] Output: 6 Explanation: [2,3] has
-
Python语言描述连续子数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止).你会不会被他忽悠住?(子向量的长度至少是1) 思路: 最大和连续子数组一定有如下几个特点: 1.第一个不为负数 2.如果前面数的累加值
-
C语言入门篇--函数及数组用法
目录 函数 1.函数的作用 2.函数的构成 (1)返回值 (2)函数名 (3)形参列表 (4)函数体 数组 1.定义数组 1.1不进行初始化 1.2进行初始化 1.3不给定数组元素个数 2.数组的经典用法 2.1求数组大小.元素大小.元素个数 2.2遍历 面向过程编程:C语言是面向过程的语言:在C语言中,把大部分的功能以一个个函数呈现,就称之为面向过程编程: 函数 是面向过程编程最关键的语法结构. 1.函数的作用 1.从工程上讲,函数可以让我们的代码更具有结构性,让代码更好看. 2.函数可以提升
-
c语言求两个字符串的交集
目录 一.main()函数 二.fun1()函数 三.fun2()函数 注意; 总结 求两个字符串的交集,看似简单,实则需要考虑的细节很多. 我的思路: 1.将两个字符串简化,将里面重复的字母减少为一个. 2.拼接两个字符串,借助循环把重复出现两次的字符找出来. 有了思路开始写代码. 一.main()函数 思路: 1.定义两个储存字符串的数组tt[M],pp[M] 2.定义指针*p接收fun2() 返回值,输出交集 3.输入两个字符串(此处注意越界问题) 4.调用函数 5.输出交集 #inclu
-
C语言详细讲解树状数组与线段树
目录 树状数组 动态求连续区间和 数星星 线段树 动态求连续区间和 数列区间最大值 树状数组 动态求连续区间和 给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和. 输入格式第一行包含两个整数 n 和 m,分别表示数的个数和操作次数. 第二行包含 n 个整数,表示完整数列. 接下来 m 行,每行包含三个整数 k,a,b (k=0,表示求子数列[a,b]的和:k=1,表示第 a 个数加 b). 数列从 1 开始计数. 输出格式输出若干行数字,表示 k
随机推荐
- Erlang中的socket编程简单例子
- 详解docker强制批量删除none的image镜像
- 新手指南:大内存的崭新用途
- 为什么在重写 equals方法的同时必须重写 hashcode方法
- Android模仿To圈儿个人资料界面层叠淡入淡出显示效果
- java设计模式之工厂方法详解
- GO语言实现批量压缩图片和水印
- JavaScript常用正则函数用法示例
- Python中的MongoDB基本操作:连接、查询实例
- Android Force Close 出现的异常原因分析及解决方法
- PHP 文件上传进度条的两种实现方法的代码
- 效果直逼flash的Div+Css+Js菜单
- 基于Node.js的WebSocket通信实现
- 比较常见的javascript中定义函数的区别
- 基于JavaScript实现图片连播和联级菜单实例代码
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- 浅谈C语言的字节对齐 #pragma pack(n)2
- C#锁住文件的操作步骤
- Vue组件之高德地图地址选择功能的实例代码
- 基于thinkphp6.0的success、error实现方法