Guest User

Untitled

a guest
Jul 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. def firstMissingPositive(nums):
  2. """
  3. :type nums: List[int]
  4. :rtype: int
  5. """
  6. if not nums:
  7. return 1
  8. for i,v in enumerate(nums):
  9. if v > len(nums):
  10. nums[i]=-1
  11. elif v <= 0:
  12. nums[i]=-1
  13. else:
  14. while i+1 != nums[i] and 0<nums[i]<=len(nums):
  15. #print i, nums[i]-1, nums[i], nums[nums[i]-1]
  16. v = nums[i]
  17. nums[i] = nums[v-1]
  18. nums[v-1] = v
  19. #nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i]
  20. if nums[i] > len(nums) or nums[i] <=0:
  21. nums[i] = -1
  22. for i,v in enumerate(nums):
  23. if nums[i] != i+1:
  24. return i+1
  25. return len(nums)+1
  26.  
  27. if __name__ == "__main__":
  28. print firstMissingPositive([1,2,0])
  29. print firstMissingPositive([3,4,-1,1])
  30.  
  31. for i,v in enumerate(nums)
  32.  
  33. for i,v in enumerate(nums):
  34. if v > len(nums):
  35. nums[i]=-1
  36. elif v <= 0:
  37. nums[i]=-1
  38. else:
  39.  
  40. if 0 >= value > len(nums):
  41. continue
  42.  
  43. def first_missing_positive(nums):
  44. """
  45. :type nums: List[int]
  46. :rtype: int
  47. """
  48. if not nums:
  49. return 1
  50. for index, value in enumerate(nums):
  51. if len(nums) < value <= 0:
  52. continue
  53. while index + 1 != nums[index] and 0 < nums[index] <= len(nums):
  54. v = nums[index]
  55. nums[index], nums[v-1] = nums[v-1], nums[index]
  56. nums[v-1] = v
  57.  
  58. # Don't create infinite loops
  59. if nums[index] == nums[v-1]:
  60. break
  61.  
  62. for index, value in enumerate(nums, 1):
  63. if value != index:
  64. return index
  65. return len(nums) + 1
  66.  
  67. def first_missing_positive(nums):
  68. cnt = {}
  69. for x in nums:
  70. cnt[x] = 1
  71.  
  72. fnd = 1
  73. for i in range(len(nums)):
  74. if cnt.get(fnd, 0) == 0:
  75. return fnd
  76. fnd += 1
  77. return fnd
Add Comment
Please, Sign In to add comment