• 二维连通数和最大值


    题目:返回一个二维整数数组中最大联通子数组的和

    思路:把二维数组的每一行看成一维数组,在一位数组中求联通的的最大子数组,都求出后判断这几组的小连通数组是否相连,把相连的的加在一起。最后在判断在上一个一维数组最大联通范围内是否有正数有则加上。

    代码:

    #include<iostream>
    using namespace std;
    
    void main()
    {
    	int m,n,i,j,smark,mmark,t2;
    	int sum;
    	int up[100],down[100],t[100];
    	int a[100][100],b[100];
    	cout<<"输入二维数组的行和列";
    	cin>>m>>n;
    	for(i=0;i<m;i++)
    	{
    		for(j=0;j<n;j++)
    		{
    			cin>>a[i][j];
    		}
    	}
    
    	for(i=0;i<m;i++)
    	{
    		for(j=0;j<n;j++)
    		{
    			b[j]=a[i][j];
    		}
    		int c[100]={0};
    		int sum1=0,max1=0,k;
    		for(k=0;k<n;k++)
    		{
    			if(sum1<0)
    			{
    				sum1=b[k];
    			}
    			else
    			{
    				sum1=sum1+b[k];
    			}
    			c[k]=sum1;
    		}
    		max1=c[0];
    		for(k=0;k<n;k++)
    		{
    			if (max1<c[k])
    			{
    				max1= c[k];
    				mmark = k;
    			}
    		}
    		for (k = mmark;k >= 0;k--)
    		{
    			if (c[k] == b[k])
    			{
    				smark = k;
    				break;
    			}
    		}
    		sum=max1;
          
    		up[i]=smark;                                   
    		down[i]=mmark;
    		t[i]=sum;
    
    	}
    	t2=t[0];
    	for(i=0;i+1<m;i++)
    	{
    		if(up[i]<=down[i+1] && down[i]>=up[i+1])
    		{
    			t2+=t[i+1];
    		}
    		for(j=up[i];j<up[i+1];j++)
    		{
    			if(a[i+1][j]>0) t2+=a[i+1][j];                   //判别独立正数
    		}
    
    	}
    	cout<<t2<<endl;
    
    }
    

     截图:

     

    总结:这次的任务的难度系数明显提高,在思路设计时也是想到几种方案但可执行度不高,最后通过和舍友一起讨论作出如今的方案在执行中任然有一定的问题,现在的问题仍在努力的解决中,通过这次的编程对数组的的理解更加的深入,这次的任务在我开来在思路设计过程中给自己收获更大,针对这次的问题设计思路时失败再设计新丝路的过程中让自己的能力有所提高。

  • 相关阅读:
    微软研究院的分布式云计算框架orleans
    DDDLite的权限管理
    OAuth在WebApi
    LVM pvcreate,vgcreate,lvcreate,mkfs
    List subList()的一个demo
    web 环境项目(intellj部署的tomcat) 重启时报 Exception in thread "HouseKeeper" java.lang.NullPointerException (转)
    Ehcache详细解读(转)
    Java 理论与实践: 正确使用 Volatile 变量(转)
    解决SecureCRT中文显示乱码
    免费动态域名解析
  • 原文地址:https://www.cnblogs.com/lingxi/p/4460753.html
Copyright © 2020-2023  润新知