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是设立判断是否超限的条件.这次的任务使我们有所收获,但也只做到最终结果超限的判断却并没有想到如何计算出超限的最终结果,不太清楚该怎么办.

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

  • 相关阅读:
    Vue学习手记01-安装和项目创建
    [Powershell] FTP Download File
    [PowerShell] Backup Folder and Files Across Network
    SSRS 请求并显示SharePoint人员和组字段
    Beta 冲刺 (2/7)
    Beta 冲刺 (1/7)
    BETA 版冲刺前准备
    事后诸葛亮
    Alpha 答辩总结
    α冲刺 (10/10)
  • 原文地址:https://www.cnblogs.com/logo132/p/9784637.html
Copyright © 2011-2022 走看看