在代码中使用了动态内存分配,但没有及时释放资源,导致内存泄漏。应该在使用完之后手动释放内存,即添加delete[]语句。

正确的代码如下:

class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        int *front_next = new int[nums.size()];
        int *end_next = new int[nums.size()];
        for(int i = 0; i < nums.size(); i++){
            front_next[i] = 1;
            end_next[i] = 1;
        }
        front_next[0] = nums[0];
        end_next[nums.size()-1] = nums[nums.size()-1];
        for(int i = 1; i < nums.size(); i++){
            front_next[i] = front_next[i-1] * nums[i];
        }
        for(int i = nums.size()-2; i >= 0; i--){
            end_next[i] = end_next[i+1] * nums[i];
        }
        for(int i = 0; i < nums.size(); i++){
            if(i-1 < 0){
                nums[i] = end_next[i+1];
            }
            if(i+1 >= nums.size()){
                nums[i] = front_next[i-1];
            }
            else{
                nums[i] = front_next[i-1] * end_next[i+1];
            }
        }
        delete[] front_next;
        delete[] end_next;
        return nums;
    }
};
``
class Solution public vectorint productExceptSelfvectorint& nums int front_next=new intnumssize; int end_next=new intnumssize; forint i=0;inumssize;i++ front_nexti=

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

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