Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Cant find what's wrong in the code… Repeat and missing Number

Question

You are given a read only array of n integers from 1 to n.

Each integer appears exactly once except A which appears twice and B which is missing.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Return A and B.

Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

Note that in your output A should precede B.

Example:

Input:[3 1 2 5 3] 

Output:[3, 4] 

A = 3, B = 4

My code:

class Solution:
    def repeatedNumber(self, A):
        n=len(A)
        asum=0
        rsum = (n*(n+1))//2
        x=0
        dict={}
        for i in A:
            asum+=A[i]
            
            if A[i] in dict:
                x=A[i]
            else:
                dict[i]=1

        
        diff=rsum-asum
        
        return x,x+diff

>Solution :

Your error is simple, you’re using for i in A: but you refer to i within the for loop as if you did for i in range(len(A)):. To fix this all you need to do is replace all instances of A[i] in your code with i. It should look something like this:

class Solution:
    def repeatedNumber(self, A):
        n=len(A)
        asum=0
        rsum = (n*(n+1))//2
        x=0
        distinct={}
        for i in A:
            asum+=i
            
            if i in distinct:
                x=i
            else:
                distinct[i]=1

        
        diff=rsum-asum
        
        return x,x+diff

I hope that helped:)

Note: It doesn’t have any functional relevance in this case, but it is generally go practice to name your variables something other than the object name. In this case I just renamed the dict variable to distinct, as it also gives readers a better understanding of what the dictionary is actually used for.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading