Why can tuple-unpacking provide a correct result when using two lines doesn't?Unpacking a list / tuple of pairs into two lists / tuplesWhy do these two similar pieces of code produce different results?Theta(n**2) and Theta(n*lgn) algorithm perform unproperlySwapping maximum and minimum values in a listReceiving a ValueError during max() operationHow to implement the Softmax function in PythonWhy doesn't this code display any output?From LeetCode Given an array of integers, return indices of the two numbers such that they add up to a specific targetWhy does this greedy algorithm work?In Python how do I get the max value of a 'column' in a 2D array?

Reflecting Telescope Blind Spot?

Should I move out from my current apartment before the contract ends to save more money?

Support Structures for Green beans and peas

Struggling to present results from long papers in short time slots

Can artificial satellite positions affect tides?

The title "Mord mit Aussicht" explained

Can an escape pod land on Earth from orbit and not be immediately detected?

Does PC weight have a mechanical effect?

Manager wants to hire me; HR does not. How to proceed?

How do credit card companies know what type of business I'm paying for?

How would Japanese people react to someone refusing to say “itadakimasu” for religious reasons?

Is fission/fusion to iron the most efficient way to convert mass to energy?

Is there a risk to write an invitation letter for a stranger to obtain a Czech (Schengen) visa?

How to address players struggling with simple controls?

Co-worker is now managing my team, does this mean that I'm being demoted?

How can this shape perfectly cover a cube?

Does anyone recognize these rockets, and their location?

Idiom for 'person who gets violent when drunk"

Jam with honey & without pectin has a saucy consistency always

What made the Ancient One do this in Endgame?

Do legislators hold the right of legislative initiative?

At zero velocity, is this object neither speeding up nor slowing down?

New Site Design!

My parents claim they cannot pay for my college education; what are my options?



Why can tuple-unpacking provide a correct result when using two lines doesn't?


Unpacking a list / tuple of pairs into two lists / tuplesWhy do these two similar pieces of code produce different results?Theta(n**2) and Theta(n*lgn) algorithm perform unproperlySwapping maximum and minimum values in a listReceiving a ValueError during max() operationHow to implement the Softmax function in PythonWhy doesn't this code display any output?From LeetCode Given an array of integers, return indices of the two numbers such that they add up to a specific targetWhy does this greedy algorithm work?In Python how do I get the max value of a 'column' in a 2D array?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I was working on the "maximum product subarray" problem and I ran into an issue with my code



The way I solved this problem was



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum

print(maxProduct([-4, -3, -2]))


My solution would give me 72 but the code that would give the correct solution is:



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum


print(maxProduct([-4, -3, -2]))


My solution and the correct solution seem to do the same thing. Why would



maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


vs



maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)


make such a big difference?










share|improve this question
























  • Pay attention to when maxProd changes! Which maxProd do you want to use when calculating minProd?

    – hpaulj
    Mar 25 at 2:43

















0















I was working on the "maximum product subarray" problem and I ran into an issue with my code



The way I solved this problem was



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum

print(maxProduct([-4, -3, -2]))


My solution would give me 72 but the code that would give the correct solution is:



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum


print(maxProduct([-4, -3, -2]))


My solution and the correct solution seem to do the same thing. Why would



maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


vs



maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)


make such a big difference?










share|improve this question
























  • Pay attention to when maxProd changes! Which maxProd do you want to use when calculating minProd?

    – hpaulj
    Mar 25 at 2:43













0












0








0








I was working on the "maximum product subarray" problem and I ran into an issue with my code



The way I solved this problem was



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum

print(maxProduct([-4, -3, -2]))


My solution would give me 72 but the code that would give the correct solution is:



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum


print(maxProduct([-4, -3, -2]))


My solution and the correct solution seem to do the same thing. Why would



maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


vs



maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)


make such a big difference?










share|improve this question
















I was working on the "maximum product subarray" problem and I ran into an issue with my code



The way I solved this problem was



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum

print(maxProduct([-4, -3, -2]))


My solution would give me 72 but the code that would give the correct solution is:



def maxProduct(nums):
minProd = maxProd = maximum = nums[0]
for i in range(1, len(nums)):
currentNum = nums[i]
maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)
maximum = max(maximum, maxProd)
return maximum


print(maxProduct([-4, -3, -2]))


My solution and the correct solution seem to do the same thing. Why would



maxProd, minProd = max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


vs



maxProd = max(currentNum, currentNum*maxProd, currentNum*minProd)
minProd = min(currentNum, currentNum*maxProd, currentNum*minProd)


make such a big difference?







python python-3.x greedy






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 25 at 2:54









Charles Duffy

186k28215269




186k28215269










asked Mar 25 at 2:29









radhiradhi

1197




1197












  • Pay attention to when maxProd changes! Which maxProd do you want to use when calculating minProd?

    – hpaulj
    Mar 25 at 2:43

















  • Pay attention to when maxProd changes! Which maxProd do you want to use when calculating minProd?

    – hpaulj
    Mar 25 at 2:43
















Pay attention to when maxProd changes! Which maxProd do you want to use when calculating minProd?

– hpaulj
Mar 25 at 2:43





Pay attention to when maxProd changes! Which maxProd do you want to use when calculating minProd?

– hpaulj
Mar 25 at 2:43












1 Answer
1






active

oldest

votes


















4














What is the value of maxProd when you calculate the second value?



In the first example,



max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


is calculated and then unpacked and assigned.



In the second example, the new maxProd value is calculated and assigned, and then used in the second calculation.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55330548%2fwhy-can-tuple-unpacking-provide-a-correct-result-when-using-two-lines-doesnt%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    4














    What is the value of maxProd when you calculate the second value?



    In the first example,



    max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


    is calculated and then unpacked and assigned.



    In the second example, the new maxProd value is calculated and assigned, and then used in the second calculation.






    share|improve this answer



























      4














      What is the value of maxProd when you calculate the second value?



      In the first example,



      max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


      is calculated and then unpacked and assigned.



      In the second example, the new maxProd value is calculated and assigned, and then used in the second calculation.






      share|improve this answer

























        4












        4








        4







        What is the value of maxProd when you calculate the second value?



        In the first example,



        max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


        is calculated and then unpacked and assigned.



        In the second example, the new maxProd value is calculated and assigned, and then used in the second calculation.






        share|improve this answer













        What is the value of maxProd when you calculate the second value?



        In the first example,



        max(currentNum, currentNum*maxProd, currentNum * minProd), min(currentNum, currentNum*maxProd, currentNum*minProd)


        is calculated and then unpacked and assigned.



        In the second example, the new maxProd value is calculated and assigned, and then used in the second calculation.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 25 at 2:39









        Patrick HaughPatrick Haugh

        33.3k93252




        33.3k93252





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55330548%2fwhy-can-tuple-unpacking-provide-a-correct-result-when-using-two-lines-doesnt%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

            용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

            155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해