1 感想

  • 基础功很重要

  • 首先梳理和的思路,然后就是具体序列开始/结束更新的位置

  • 代码的基础功待加强,

本轮浪费时间的位置

alt

2 code


class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    vector<int> FindGreatestSumOfSubArray(vector<int>& array) {
        // write code here
        vector<int> v;
        if(array.size() == 0){
            return v;
        }
        
        int i =0, localStart =0,localEnd =0 , gStart=0 ,gEnd =0;
        int localSum = 0, globalSum = 0x80000000;//int32_min;
        for( i = 0; i< array.size() ; i++){
            if(localSum < 0)
            {
                localSum = array[i];
                localStart = i;
                localEnd= i;//VS的语法提醒也会有错误
            }else{
                localSum += array[i];
                localEnd = i;
            }
            if(localSum>globalSum){
                globalSum = localSum;
                gStart = localStart;
                gEnd = localEnd;
            }
            //以下更新条件错误,导致浪费5分钟
            if(localSum == globalSum &&( (gEnd-gStart )< (localEnd - localStart)))
              {
                  gEnd = localEnd;
                  gStart = localStart;
              }//inner if
              //多出来一个{ }后括号,一直在最后报未知的语法错误,浪费5分钟
        }//end for
         for(i= gStart;(i<=gEnd) && (gStart<=gEnd);i++)
         {
                v.push_back(array[i]);
            }
            return v;

    }

};