zoukankan      html  css  js  c++  java
  • 数组题目小计(1)

    终于快过完二柱的四则运算题目了,数组起头了

    题目:返回一个整数数组中最大子数组的和。 要求: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n) 发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选)、源代码、结果截图、总结。

    吸取教训,先整理好思路再进行编写

         首先想到了很笨的方法,定义一个数组a用来存放子数组含1,2,3...个元素时的最大值,然后分别计算从a[0]开始元素子数组含(1~数组最大值)的和,再在数组a中进行比较找出最大值,后来又想出一个看似稍微简化一点的方法:依次找到数组的最大元素、次大元素...最小元素,找到的同时进行子数组的求和,和的最大值再放入数组a中(经过检验好像比一开始想出来的方法难),时间复杂度先不考虑(已经嵌套好几层括号o(╯□╰)o)

         ***************************************************************************************************************************

    嵌套关系有点混乱了,能出来一个元素和两个元素子数组的和最大值,改了又出不来了,附上代码,脑袋已经乱了,明天理清楚继续,好像错误是未初始化,而且少了东西,

    ~~~~(>_<)~~~~

    #include<iostream>
    using namespace std;
    int Max(int a[100], int i, int num);
    int main()
    {
        cout << "请输入数组元素个数:";
        int num;
        cin >> num;
        cout << "请输入数组元素:";
        int array_[100],i,j,far,k=0;
        int a[100];
        for (i = 0; i < num; i++)
            cin >> array_[i];
        //从前到后依次求子数组和的最大值
        for (i = 0; i < num; i++)    
        {
            for (far = 0; far < num - i; far++)    //定义到计算元素的距离(含几个元素的子数组)
            {
                for (j = i; j < i + far; j++)    //加的次数
                {
                    int m=0;
                    m = m + array_[j];    //m存放子数组的和
                    int a[100];
                }
            }
        }
        cout << Max(a, k, i*i+i) << " ";
        return 0;
    }
    //求数组最大值
    int Max(int a[100],int i,int num)
    {
        int M=a[0];
        for (i = 0; i < num; i++)
        {
            if (a[i] > M)
                M = a[i];
        }
        return M;
    }
  • 相关阅读:
    设计模式之单例模式
    Java的8种基本数据类型的内存占用字节数和取值范围
    如何解析本地和线上XML文件获取相应的内容
    Android性能优化(一)之启动加速35%
    自定义控件?试试300行代码实现QQ侧滑菜单
    菜单开源库装逼大全
    View动画和属性动画
    第三方分享
    Android 谈谈封装那些事 --BaseActivity 和 BaseFragment(二)
    转:工具类之SpannableStringUtils(相信你会爱上它)
  • 原文地址:https://www.cnblogs.com/brucekun/p/5303779.html
Copyright © 2011-2022 走看看