def firstMissingPositive(A):
try:
for x in range(1, max(A)+1):
if x not in A: return x
except: return A
def firstMissingPositive(A):
try: return next(x for x in range(1, max(A)+1) if x not in A)
except: return A
Thanks for the ValueError tip. I added it as well as a TypeError just in case the input comes in as a string. My skills are beginner level at best, tips like yours help a lot!
Comments
Thanks for the reply, very informative.
You really should change "except" to "except ValueError" there.
Also, I suggest first converting A to a set. Just "A = set(A)" would work.
HN is not really for code review, but why are you using try and except here??
Python is designed for it, and it makes it cleaner, so why not?
EAFP: Easier to ask for forgiveness than permission
That being said, just a blanket except is a bad idea.
Thanks for the ValueError tip. I added it as well as a TypeError just in case the input comes in as a string. My skills are beginner level at best, tips like yours help a lot!