定义
数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
leetcode
3.Three Sum(求三数之和)
class Solution:
def threeSum(self, nums):
nums.sort()
res = []
for i in range(len(nums) - 2):
if i == 0 or nums[i] > nums[i - 1]:
left, right = i + 1, len(nums) - 1
while left < right:
if nums[left] + nums[right] == -nums[i]:
res.append([nums[i], nums[left], nums[right]])
left += 1
right -= 1
while left < right and nums[left] == nums[left - 1]:
left += 1
while left < right and nums[right] == nums[right + 1]:
right -= 1
elif nums[left] + nums[right] < -nums[i]:
while left < right:
left += 1
if nums[left] > nums[left - 1]:
break
else:
while left < right:
right -= 1
if nums[right] < nums[right + 1]:
break
return res
if __name__ == "__main__":
s = Solution()
nums = [-1, 0, 1, 2, -1, -4]
print(s.threeSum(nums))
41.Missing Positive(求缺失的第一个正数)
class Solution:
def firstMissingPositive(self, nums):
if len(nums) == 0:
return 1;
nums.sort()
max_int = nums[-1]
if max_int <= 0:
return 1
for i in range(1, max_int):
if i not in nums:
return i
return max_int + 1
if __name__ == "__main__":
s = Solution()
nums = [3, 4, -1, 1]
print(s.firstMissingPositive(nums))
169.Majority Element(求众数)
class Solution:
def majorityElement(self,nums):
count = 1
maj = nums[0]
for i in range(1, len(nums)):
if count == 0:
maj = nums[i]
if nums[i] == maj:
count += 1
else:
count -= 1
return maj
if __name__ == "__main__":
s = Solution()
nums = [2,2,1,1,1,2,2]
print(s.majorityElement(nums))