一维循环数组最大子数组求解
#include "stdafx.h"
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{int i, k = 0, count, count2, num1[100], num2[100];printf("请输入数字个数,不超过50:");scanf("%d", &count);count2 = count * 2;printf("请输入数字:");for (i = 0; i<count; i++){scanf("%d", &num1[i]);}for (i = 0; i<count2; i++){if (i<count)num2[i] = num1[i];elsenum2[i] = num1[i - count];}int x = 0, maxsum = 0, nowsum = 0;for (i = x; i<count + x; i++){nowsum = nowsum + num2[i];if (nowsum>maxsum){maxsum = nowsum;}else{maxsum = maxsum + 0;}if (i == count - 1 + x){x++;if (x<count){i = x - 1;nowsum = 0;}elsebreak;}}printf("最大子数组的和:%d\n", maxsum);return 0;
}
设计思路:依照之前的思路这次的问题变成了如何把一个数组复制成两遍然后接起来(比如{1,2,3,4,5,6}变为{1,2,3,4,5,6,1,2,3,4,5})之后再用同样的一维数组求最大子数组的方法得到环形数组的最大子数组
于是就有了:
for (i = 0; i<count2; i++){if (i<count)num2[i] = num1[i];elsenum2[i] = num1[i - count];}先把数组变为2倍并把原数组内的原本放到数组2,再从头把原数组元素循环放入数组2,再用数组二实现求最大子数组
if (i == count - 1 + x){x++;if (x<count){i = x - 1;nowsum = 0;}elsebreak;}
如果数组元素个数超过了数组长度就break,如果没有超过,就继续累加
这次编写代码难点就在于其中的循环的书写,赵宁很厉害想了出来,要向他学习
转载于:https://www.cnblogs.com/logo132/p/9897319.html
一维循环数组最大子数组求解相关推荐
- 求首位相连一维数组最大子数组的和
结对成员: 朱少辉:主要负责代码编写 侯涛亮:主要负责程序测试 题目:一个首尾相接的一维整型数组,其中有正有负,求它的最大子数组并返回它的位置. 思路:在求一维子数组的基础上,先输入一个含有N个数的一 ...
- 结对开发——一维数组最大子数组判断溢出
一 题目 求一维数组最大子数组和 要求:1000个数以上,整数 二.设计思路 最大子数组很好找到,但是子数组和的溢出问题很难解决. 经过不断的思考,我得出了结论: 溢出是程程序设计者设计时的不足所带来 ...
- 返回一个二维整数数组最大子数组的和
要求: 1,输入一个二维整形数组,数组里有正数也有负数. 2,二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和, 3,求所有子数组的和的最大值. 设计思路: 参照一维整数数组求解最大子 ...
- 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)
首先,我们看到这篇文章的题目,我们就会想到之前的那个题目 -- 连续子数组最大和问题.这个问题无疑就是把原问题扩展到二维的情况. 想起来这个问题也不是很难,我们可以求解一维矩阵 ...
- 求一个二维整数数组最大子数组之和,时间复杂度为N^2
本随笔只由于时间原因,我就只写写思想了 二维数组最大子数组之和,可以 引用 一维最大子数组之和 的思想 一维最大子数组之和 的思想,在本博客上有,这里就不做多的介绍了 我们有一个最初的二维数组 ...
- 二维数组最大子数组和
一.实验题目 求一个二维数组中和最大的子数组. 二.实验思路 基于我们第一次合作时求的一位数组最大子数组,加上一层循环来遍历二维数组中的所有子矩阵的情况. 第一步:先利用上次的方法求每一行的情况,将每 ...
- 环状二维数组最大子数组求和
题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一 ...
- 结对开发四------求一维无头数组最大子数组的和
一.代码思想 对第一次一维数组的延伸,增加无头无尾功能,我们的设计思想是每比较一次进行一次交换,将第一个掉到位后去第二个调到第一个,第三个调到第二个,以此类推,再进行实验一的求最大子数组的和 二.代码 ...
- 首尾相连的一位数组最大子数组和
题目:在原有的一位数组上进行扩展,求首尾相连的最大子数组的和: 要求: 输入一个一维整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和 ...
最新文章
- 1.5 Map集合:HashMap 和TreeMap 类
- 云未来、新可能 - 绿色、无处不在、可信的计算
- javascript对页面简单的加密和解密
- js脚本点击按钮显示文字_JSBOX脚本聊天神器
- Spark杀死我们提交的application
- SpringBoot : BeanFactory和FactoryBean的区别
- BES2300x笔记(30) -- ANC降噪原理与通道配置
- 获取163邮箱的邮件 并下载附件
- 8虚拟内存9页面置换算法
- 企业付款到零钱(微信小程序提现,用户提现到零钱)
- 老毛桃U盘快速安装ghost win7系统图文教程
- _EPROCESS结构简单了解!
- AD19技术笔记-常用PCB设计思路-布线篇(一)
- VB连接Sql Server,Oracle,SyBase,Access数据库操作实例
- 服务器配置mysql
- 一人一本一年N手机,仿滴滴出行开发含700个功能网约车APP源码(二)
- 实现暂停一秒输出的效果_HID控制器与海康威视人脸识别amp;测温门禁一体机实现联动的改造方法...
- Excel表格转成PDF后页数变多有空白页怎么办?
- LeetCode题解(Week 9):486. Predict the Winner
- java poi 加粗居中_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)