C++实例化对象及语法问题

本问题是一个求最大子序列的动态规划问题,现在用C++语言处理,并讲述一些语法问题

#include<vector>
using std::vector;
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        if (nums.size() <= 0) return -1;
        int maxSum = nums[0];
        int *dp = new int[nums.size()];
        dp[0] = nums[0];
        for (int i = 1; i < nums.size(); ++i) {
            if (dp[i - 1] < 0) {
                dp[i] = nums[i];
            }
            else {
                dp[i] += nums[i];
            }
            if (maxSum < dp[i]) maxSum = dp[i];
        }
        return maxSum;
    }
};
void main() {//由于C++的类也是一个由分号结束的语句,所以主函数main不能写在类里面,否则找不到入口
    Solution *s = new Solution();  //堆区申请存储地址,*s对象不会结束自己的生命。你必须手动调用delete s;如果不调用delete,则会造成内存泄漏
    vector<int> *nums = new vector<int>({ 1,-2,9,-20,6 });
    int a = s->maxSubArray(*nums);
    Solution sb;  //在栈区申请对象实例的空间,当函数执行结束后,sb会自动调用Solution的析构函数,结束自己的生命
    sb.maxSubArray(*nums);
    printf("%d", a);
    system("pause");
    delete s;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 小家伙今天作业写完的早,爸爸把他早早接了回来。门一开小家伙就风风火火的跑了进来,手里拿着两个蜜豆包,给我塞...
    邓启旭邓君浩妈妈阅读 89评论 0 3
  • 题记:为何,一个人一辈子做好事,结果只做了一件坏事,大众却无法容忍,万世唾弃;而一个一辈子都做坏事,结果只做了一件...
    无戒诗书阅读 499评论 0 0
  • 今天的晨读是养成好习惯,不知道为什么我的第一反应是武侠片里的那个老太监,蘸着唾液翻书的画面。 这个小习惯让老太监不...
    Mjinxiu无忧阅读 524评论 0 7
  • 那一年去沙湖旅游,在高高的沙堆上,看着别的游客坐上滑板,尖叫着冲下去,觉得很刺激!很好玩!于是,我也坐上了滑...
    蓝果东阅读 638评论 1 1
  • 今日休整,一天都呆在酒店。有时间和浩洋聊聊,为什么我们会一直在路上。 1.适应力 我希望浩洋能有更强的适应力。 在...
    周洋_图乐园阅读 1,167评论 0 0

友情链接更多精彩内容