zoukankan      html  css  js  c++  java
  • 计算连续最大子数组问题

    #include "stdafx.h"
    #include "stdlib.h"
    int a[1000] = { 0 };
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int a[1000] = { 0 };
    	for (int i = 0; i < 1000; i++)
    	{
    		a[i] = rand() % 10000 - 5000;
    	}
    	for (int j = 0; j < 999; j++)
    	{
    		printf("%d	", a[j]);
    	}
    
    	//计算连续最大子数组
    	int maxsum = 0;
    	int nowsum = 0;
    	int x;
    	for (int k = 0; k <1000; k++)
    	{
    		nowsum += a[k];
    		x = nowsum;
    		if (a[k +1] > 2147483647 - x)
    		{
    			printf("超出范围");
    			maxsum = maxsum + a[k + 1];
    			printf("%d", k+1);
    			break;
    		}
    		else
    		{
    			if (nowsum > maxsum)
    			{
    				maxsum = nowsum;
    			}
    			else if (nowsum < 0)
    			{
    				nowsum = 0;
    			}
    		}
    	}	
    	printf("
    
    结果是
    ");
    	printf("%d
    ", maxsum);
    
    	return 0;
    }
    

      这次直接遇到的问题一个是如何计算连续最大子数组,一个是如何判断结果超限,确实用了不少时间来思考,思路是分为三段1是设置一个数组能储存1000个元素2是计算最大连续子数组3是设立判断是否超限的条件.这次的任务使我们有所收获,但也只做到最终结果超限的判断却并没有想到如何计算出超限的最终结果,不太清楚该怎么办.

    这次作业让确实发现自己水平不太好,希望努力能把这门课越学越好

  • 相关阅读:
    创建基于 SQL Server 表的外部内容类型
    symfony入门之 app/console 命令
    git上传代码到github
    ubuntu下配置apache虚拟主机
    ubuntu14.04下解决编辑器无法输入中文
    PHP把域名解析为站点IP
    mysql平常总结
    php防sql注入函数
    常用的正则检测总结
    redis缓存注意事项
  • 原文地址:https://www.cnblogs.com/logo132/p/9784637.html
Copyright © 2011-2022 走看看