zoukankan      html  css  js  c++  java
  • 二维数组

    设计思想:首先我们应该把求二维数组转换为求一维数组,将每行中的第i列到第j列进行相加,然后得到一个列的矩阵,然后再通过求一维数组的方法来求最大子数组。
    问题:对于二维数组求最大子数组刚开始没有任何的思路,不知道该怎么编写,后来在网上找了相关的思路进行编写
     
     package 数组3;

    import java.util.Scanner;

    public class shuzu3 {
    static Scanner in=new Scanner(System.in);
    public static void main (String[] args){
    int num1[]=new int[10];
        int num2[]=new int[20];
        System.out.println("请输入数组个数");
        int n;
        n=in.nextInt();
        System.out.println("请输入数组");
        for(int i=0;i<n;i++) {
            num1[i]=in.nextInt();
            num2[i]=num1[i];
        }
        for(int i=0;i<n;i++) {
            num2[i+n]=num1[i];
        }
        System.out.println("请输入从几个数开始查询");
        int m;
        m=in.nextInt();
        int max=0; 
        int max2=0;
        max2=num2[m-1];
        for(int i=m-1;i<n+m-1;i++) {
            if(max<=0) {
                max=num2[i];
            }else {
                max+=num2[i];
            }
            if(max2<max) {
                max2=max;
            }
        }
        System.out.println(max2);
    }
    }
     
     
    总结:如果想求最大子数组的和,最重要的是遍历数组的方法,但是对于二维数组来说,将每个子数组都遍历出来太困难了,后来通过上网查找以及上课的讨论,找到了一种方法来求最大子数组的和,在这次作业中,发现算法很重要,如果我们在编程之前想到了一个很好的方法,那么最好往往可以达到事半功倍的效果。
     
  • 相关阅读:
    MINIBASE源代码阅读笔记之heapfile
    MINIBASE源代码阅读笔记之HFPage
    naive cube implementation in python
    C++中对已分配空间的指针调用一个类的构造函数
    作死自救日记——不小心修改linux下/etc/sudoers权限的解决办法
    TPC-H数据导入MySQL教程
    TeX Live & TeXstudio 安装手记
    Web开发入门知识小总结
    配置静态服务器和配置nfs
    数论们
  • 原文地址:https://www.cnblogs.com/zhang12345/p/10614570.html
Copyright © 2011-2022 走看看