LeetCode--Missing Number(查找丢失的整数)Python
2017-12-04 14:22
399 查看
题目:
给定一个长度为n的数组,包含从0-n的整数,找到其中丢失的整数。如给定[0,1,3]返回2。要求O(n)复杂度,且只能使用常量个额外空间。
解题思路:
用负数来表示该数对用位置已被检索。即对数组进行遍历,将下标为当前整数的数字取负。这样既能保存原数组的值,也可以保存该数是否被包含的信息。
代码(Python):
class Solution(object):
def missingNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
flag = 0
for i in range(len(nums)):
if abs(nums[i])>=len(nums):
flag = 1
continue
nums[abs(nums[i])] = -nums[abs(nums[i])]
if flag!=1:
return len(nums)
flag = 0
for i in range(len(nums)):
if nums[i]>0:
return i
if nums[i]==0:
flag = 1
index = i
if flag==1:
return index
else:
return 0
给定一个长度为n的数组,包含从0-n的整数,找到其中丢失的整数。如给定[0,1,3]返回2。要求O(n)复杂度,且只能使用常量个额外空间。
解题思路:
用负数来表示该数对用位置已被检索。即对数组进行遍历,将下标为当前整数的数字取负。这样既能保存原数组的值,也可以保存该数是否被包含的信息。
代码(Python):
class Solution(object):
def missingNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
flag = 0
for i in range(len(nums)):
if abs(nums[i])>=len(nums):
flag = 1
continue
nums[abs(nums[i])] = -nums[abs(nums[i])]
if flag!=1:
return len(nums)
flag = 0
for i in range(len(nums)):
if nums[i]>0:
return i
if nums[i]==0:
flag = 1
index = i
if flag==1:
return index
else:
return 0
相关文章推荐
- LeetCode--First Missing Positive (第一个丢失的正整数)Python
- 【精】leetcode - 441. Arranging Coins 【二分查找 + 整数的范围陷阱】
- 【LeetCode】Missing Integer第一个丢失的整数 - Medium
- 【LeetCode41-50】找出丢失最小正整数,计算蓄水量,检测?*匹配(44),跳跳棋,全排列,矩阵逆转,颠倒字母重新排序(auto,set/multiset,vector初始化),n次方
- LeetCode--Find the Duplicate Number(查找重复数字)Python
- LeetCode 41. First Missing Positive(查找第一个丢失正整数)
- [LeetCode] Missing Number 丢失的数字
- leetcode【268 Missing Number】【Python】
- LeetCode--Reverse Integer(整数反转)Python
- 对整数数组进行二分查找;传数组指针会丢失数组大小信息。
- LeetCode--371. Sum of Two Integers(两个整数的和)Python
- LeetCode 268 Missing Number(丢失的数字)
- leetcode—217. Contains Duplicate 查找双数,python排序sort、sorted,for遍历的范围
- Leetcode 刷题(python)之 颠倒整数
- python解leetcode——13.Roman to Integer (罗马数字转为整数)
- python将ip地址转换成整数的方法
- [LeetCode-29] Divide Two Integers(两个整数相除,不能使用乘除取余算术符)
- 【python】【leetcode】【算法题目389—Find the Difference】
- 31. Next Permutation Leetcode Python
- [LeetCode]Rotate Image@python@python