• 软件工程结对作业03


    同组成员(尤凯丽):http://www.cnblogs.com/love528/

    设计思想

        在有负数的情况下,要保证找出的子数组的和是最大的,那么最小的负数是一定不会在子数组中的,我们将最小的负数作为一个断点,放在非循环数组的第一位,这样它之前的数就不需要先考虑了。例如:当循环数组为1,2,-5,6,-1时,最小的负数是-5,我们就可以将它断成非循环数组-5,6,-1,1,2。这样就可以算出最大和的子数组了。如果没有负数的话,从哪里断开就是无所谓的了,但是为了编程方便,我们还是从最小的数处断开。

    源代码

    import java.util.Scanner;
    
    public class Maxsum_2 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int max,a;
            System.out.println("请输入数字的长度:");
            Scanner sc1 = new Scanner(System.in);
            int size = sc1.nextInt();
            int num[]=new int [size];
            int num2[]=new int [size];
            System.out.println("请输入数字:");
            for(int i=0;i<size;i++)
            {
                num2[i]=sc1.nextInt();
            }
            int min=0,minnumber=num2[0];
            for(int i=0;i<size;i++)
            {
                if(num2[i]<minnumber)
                {
                    min=i;
                    minnumber=num2[i];
                }
            }
            for(int i=0;i<size;i++)
            {
                num[i]=num2[(i+min)%size];
            }
            max=num[0];
            a=num[0];
            for(int i=1;i<size;i++)
            {
                if(max+num[i]>=num[i])
                {
                    if(num[i]<0&&a<max+num[i])
                        a=max;
                    max=max+num[i];                
                }
                else
                    max=num[i];
            }
            if(a>max)
                max=a;
            System.out.print(max);
        }
    }

    运行结果截图

     

    总结:

    这次的想法比较偏,不是很好理解,但是这样的话程序复杂度会降低,所以仍是使用了这种方法。

    合作中的过程

    在讨论过此次程序的具体要求后,同组同学(张雪晴)做了程序分析,并完成代码编程,据说历时16分钟。我仔细读程序后,根据不同的数组值的情况分别测试,结果正确。

    体会

    两个人的合作可以扬长避短,更快的完成任务。当然,要随时提高自身能力,才能慢慢成长。(最有效率的团队成员可能是水平相当的两个人)

    如何解决冲突

    当对同一个问题产生不同看法时,不要认为自己的就是最好的,尽量理解对方的想法。互相体谅,互相宽容,该让步的时候要让步。

    合作照片:

  • 相关阅读:
    398. Random Pick Index
    382. Linked List Random Node
    645. Set Mismatch
    174. Dungeon Game
    264. Ugly Number II
    115. Distinct Subsequences
    372. Super Pow
    LeetCode 242 有效的字母异位词
    LeetCode 78 子集
    LeetCode 404 左叶子之和
  • 原文地址:https://www.cnblogs.com/1443188449qq/p/5396548.html
Copyright © 2020-2023  润新知