def printer_error(s):
regex=[chr(i) for i in range(97,110)]
num2=0
for x in s:
if x in regex:
pass
else:
num2 +=1
return '{0}/{1}'.format(num2,len(s))
def twoSum(nums, target):
result = []
for x in range(len(nums)):
sums = target - nums[x]
if sums in nums:
if sums !=nums[x]:
result.append(x)
elif nums.count(sums) >1 and sums ==nums[x]:
result.append(x)
return result
nums =[4,4]
print(twoSum(nums, 8))
def threeSum(nums):
result = []
result2=[]
result3=[]
for a in range(len(nums)):
for b in range(len(nums)):
if a != b:
for c in range(len(nums)):
if a != b and b != c and c != a and nums[a] + nums[b] + nums[c] == 0:
result.append(['{0},{1},{2}'.format(nums[a],nums[b],nums[c])])
for i in range(18):
res=result[i][0].split(',')
res.sort()
result2.append(res)
for index,item in enumerate(result2):
result2[index]=list(map(int,item))
result2.sort()
for i in range(len(result2)):
if result2[i] != result2[i-1]:
result3.append(result2[i])
return result3
# return result
nums = [-1, 0, 1, 2, -1, -4]
print(threeSum(nums))
result = []
result2=[]
result3=[]
for a in range(len(nums)):
for b in range(len(nums)):
if a != b:
for c in range(len(nums)):
if a != b and b != c and c != a and nums[a] + nums[b] + nums[c] == 0:
result.append(['{0},{1},{2}'.format(nums[a],nums[b],nums[c])])
for i in range(len(result)):
res=result[i][0].split(',')
res.sort()
result2.append(res)
for index,item in enumerate(result2):
result2[index]=list(map(int,item))
result2.sort()
for i in range(len(result2)):
if result2[i] not in result3:
result3.append(result2[i])
return result3
class Solution:
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
if len(nums) < 3:
return []
result = []
for a in range(len(nums)):
for b in range(len(nums)):
if a!=b:
for c in range(len(nums)):
if a != c and b != c:
if nums[a] + nums[b] + nums[c] == 0 and nums[a] <= nums[b] <= nums[c]:
lists=[nums[a], nums[b], nums[c]]
if lists not in result:
result.append(lists)
return result
给定一个未排序的整数数组,找出其中没有出现的最小的正整数。
示例 1:
输入: [1,2,0]
输出: 3
示例 2:
输入: [3,4,-1,1]
输出: 2
示例 3:
输入: [7,8,9,11,12]
输出: 1
说明:
你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。
class Solution:
def firstMissingPositive(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
lists = [i for i in range(len(nums) + 1)]
lists2 = [i for i in range(1,len(lists) + 1)]
result=[]
# return result
for listNums in lists2:
if listNums not in nums:
result.append(listNums)
return min(result)
**给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。
找到所有在 [1, n] 范围之间没有出现在数组中的数字。
您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。
示例:
输入:
[4,3,2,7,8,2,3,1]
输出:
[5,6]**
class Solution:
def findDisappearedNumbers(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
result = []
maxNums = len(nums)
if nums == []:
return result
mainNums = min(nums)
if maxNums not in nums:
nums.append(maxNums)
result.append(maxNums)
if mainNums - 1 != 0:
for x in range(1, mainNums):
mins = mainNums - x
result.append(mins)
nums.sort()
for x in range(len(nums) - 1, 0, -1):
numsReduce = nums[x] - nums[x - 1]
if numsReduce > 1:
for y in range(1, numsReduce):
reduce = nums[x] - y
result.append(reduce)
result.sort()
return result