Путь максимальной суммы в двух отсортированных массивах в C

Я отвечаю на практические вопросы от geeksforgeeks. И я не могу решить вопрос и получить требуемый результат.

https://practice.geeksforgeeks.org/problems/max-sum-path-in-two-arrays/1/?category[]=Arrays&company[]=Amazon&difficulty[]=0&page=1&sortBy=submissions&query=category[] Arrayscompany[]Amazondifficulty[]0page1sortBysubmissions

//I am finding the max path using the merge sort algo, where T(n)=O(m+n)
int MaxPath(int a[],int b[],int n,int m){
int i, j, result=0, sum1=0, sum2=0; // sum1 and sum2 store the sums of 1st and 2nd arrays respectively
while(i<n && j<m){
    if (a[i]<b[j]){
        sum1+=a[i++];
    }
    else if (a[i]>b[j]){
        sum2+=b[j++];
    }
    else{
        result+=Max(sum1,sum2);
        sum1=0;
        sum2=0;
        int temp=i;
        while(i<n && a[i]==b[j]){
            sum1+=a[i++];
        }
        while(j<m && a[temp]==b[j]){
            sum2+=b[j++];
        }
        result+=Max(sum1,sum2);
        sum1=0;
        sum2=0;
    }
}
while(i<n){
    sum1+=a[i++];
}
while(j<m){
    sum2+=b[j++];
}
result+=Max(sum1,sum2);
return result;
}

Как определяется Max()?

ryyker 18.12.2020 18:26

@ryyker Я написал для этого функцию в своей программе.

user13942095 18.12.2020 18:28

Хорошо. В этом случае, если неинициализированные переменные являются единственной проблемой, это не проблема. Но если существует больше проблем, всегда полезно предоставить минимальный воспроизводимый пример, который будет включать определение Max(), чтобы помочь тем, кто работает над проблемой. :)

ryyker 18.12.2020 18:32

хорошо, спасибо @ryyker, я обязательно учту это в следующий раз, когда буду публиковать код.

user13942095 18.12.2020 18:36
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
4
142
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Неопределенное поведение в начале кода. Это утверждение:

while(i<n && j<m){

Вызывается перед установкой значения i или j:

int i, j, result=0, sum1=0, sum2=0;  

Обратите внимание, что другие созданные элементы были установлены, но не i и j.

Поэтому с этого момента не определено, как будет работать этот цикл while. Инициализируйте все переменные перед их использованием.

Другие вопросы по теме