存储数据:List/LinkedList
Python的List
是用连续数组实现的。所以直接用List
来作为存储数据的数组就OK了。
链表的实现也很简单,下面是链表的形式。下一节我们看如何用链表简单实现栈和队列。
class ListNode:
def __init__(self, val=None, next=None):
self.val = val
self.next = next
class LinkedList:
def __init__(self):
self.tail = ListNode()
self.head = ListNode(next=self.tail)
例题:移除元素 [LC27]
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,
并返回移除后数组的新长度。
输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
def removeElement(nums, val):
l, r = 0, len(nums)-1
while l<=r:
if nums[l]==val:
nums[l] = nums[r]
r -= 1
else:
l += 1
return l
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,
使每个元素 最多出现两次 ,返回删除后数组的新长度。
输入:nums = [1,1,1,2,2,3]
输出:5, nums = [1,1,2,2,3]
def removeDuplicates(nums):
j = 2
for i in range(2, len(nums)):
if nums[i] != nums[j - 2]:
nums[j] = nums[i]
j += 1
return j
Last updated
Was this helpful?