在代码中使用了动态内存分配,但没有及时释放资源,导致内存泄漏。应该在使用完之后手动释放内存,即添加delete[]语句。\n\n正确的代码如下:\n\ncpp\nclass Solution {\npublic:\n vector<int> productExceptSelf(vector<int>& nums) {\n int *front_next = new int[nums.size()];\n int *end_next = new int[nums.size()];\n for(int i = 0; i < nums.size(); i++){\n front_next[i] = 1;\n end_next[i] = 1;\n }\n front_next[0] = nums[0];\n end_next[nums.size()-1] = nums[nums.size()-1];\n for(int i = 1; i < nums.size(); i++){\n front_next[i] = front_next[i-1] * nums[i];\n }\n for(int i = nums.size()-2; i >= 0; i--){\n end_next[i] = end_next[i+1] * nums[i];\n }\n for(int i = 0; i < nums.size(); i++){\n if(i-1 < 0){\n nums[i] = end_next[i+1];\n }\n if(i+1 >= nums.size()){\n nums[i] = front_next[i-1];\n }\n else{\n nums[i] = front_next[i-1] * end_next[i+1];\n }\n }\n delete[] front_next;\n delete[] end_next;\n return nums;\n }\n};\n


原文地址: https://www.cveoy.top/t/topic/p4GE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录