zoukankan      html  css  js  c++  java
  • 子数组问题2

    一、题目

    返回一个一维整数数组中最大子数组的和。

    二、设计思路:

    1、先输入要输入的元素的个数。

    2、构建两个INT类型的字数组,一个来存放数字,一个作为临时数组。

    3、把输入的数组首尾相接

    4、遇见正数就存放到临时数组里,并继续往下加,只要结果是正就继续存放。直到遇见负数,截断处理。

    5、如果输入的数都是负数,就在原数组里排序。否则在存放数组里排序

    5、把临时数组里的数排序,输出。

    三、源代码:

    //20142984程憧憬
    //首尾相接求最大字数组和
    import java.util.Scanner;
    public class Arraysum {
    
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
           Scanner in=new Scanner(System.in);
           System.out.println("请输入数组长度");
           int n = in.nextInt();
           int Array1[]=new int [2*n-1];
           int Array2[]=new int [2*n];
           int k=1;
           for(int i=0;i<n;i++)
           {
               Array1[i]=in.nextInt();
               if(Array1[i]>0)
                   k =0; 
           }
           for(int i=0;i<n;i++)
           {
               Array1[n-1+i]=Array1[n-1-i];
           } 
           if(k==0)
           {  
               int d=0;
               int count=0 ;
               for(int i=0;i<2*n-2;i++)
                   {  
                   d=d+Array1[i];
                   if(d<=0)
                   {
                       d=Array1[i+1];
                       Array1[i+1]=0;
                   }
               
               if(d>0)
               {
                   Array2[count]=d;
                   count++;
               }
        
           }
        
             for(int j=0;j<count-1;j++)
             for(int i=0;i<count-1-j;i++)
             {   if(Array2[i]>Array2[i+1])
                 {
                 int temp;
                 temp=Array2[i];Array2[i]=Array2[i+1];Array2[i+1]=temp;
                 }
             }
      
           System.out.println(Array2[count-1]);
         }
         
         if(k==1)
          {
             for(int j=0;j<2*n-2;j++)
                 for(int i=0;i<2*n-2-j;i++)
                 {  
                     if(Array1[i]>Array1[i+1])
                     {
                     int temp;
                     temp=Array1[i];Array1[i]=Array1[i+1];Array1[i+1]=temp;
                     }
                 } 
             System.out.println(Array1[2*n-2]);
          }
        }
    }

    四、截图:

  • 相关阅读:
    mybatis_7分页查询
    mybatis_6日志工厂
    mybatis_5解决属性名和字段名不一致的问题(resultMap)
    mybatis_4配置解析
    mybatis_3CRUD操作
    ARM C函数调用堆栈入栈顺序
    syscall SYSCALL_DEFINE*()实现
    ko kallsyms
    elf文件结构解析
    ko module加载flow
  • 原文地址:https://www.cnblogs.com/3066405538a/p/5395956.html
Copyright © 2011-2022 走看看