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);
    }
    }
     
     
    总结:如果想求最大子数组的和,最重要的是遍历数组的方法,但是对于二维数组来说,将每个子数组都遍历出来太困难了,后来通过上网查找以及上课的讨论,找到了一种方法来求最大子数组的和,在这次作业中,发现算法很重要,如果我们在编程之前想到了一个很好的方法,那么最好往往可以达到事半功倍的效果。
     
  • 相关阅读:
    LInux 安全测试 2
    LInux 安全测试
    又一款linux提权辅助工具
    shell 生成指定范围随机数与随机字符串 .
    腾讯新浪通过IP地址获取当前地理位置(省份)的接口
    建站指南:百度认为什么样的网站更有抓取和收录价值2012-06-20
    ngx_lua 金山项目 黄雀
    在页面中使用js
    多线程取读文件(别人的,有点晕,先放在这里有时间研究研究)
    factory工厂模式
  • 原文地址:https://www.cnblogs.com/zhang12345/p/10614570.html
Copyright © 2011-2022 走看看