使用入门
视频链接
【手把手带你刷Leetcode力扣|各个击破数据结构和算法|大厂面试必备技能【已完结】-哔哩哔哩】 https://b23.tv/vIcRT61
时空复杂度
时间:
空间:主要有O(1)和O(n)两种
数组
特点:适合读多写少
操作
- 创建数组
- 添加元素(追加元素在列表末端,时:O(1),否则为O(n))
- 访问元素(时:O(1))
- 修改元素(时:O(1))
- 删除元素
- 遍历数组
- 查找元素
- 数组长度
- 数组排序
相关习题
补充
在Python中,sel参数是一个约定俗成的参数名,用于表示对象自身。它通常作为方法的第一个参数,用于引用当前正在调用该方法的对象。
class Person:
def _init_(self, name):
self.name = name
def introduce(self):
print("My name is {self.name}.")
person = Person("Tom")
person.introduce()
My name is Tom.
485. 最大连续 1 的个数
测试部分用例对了
class Solution(object):
def findMaxConsecutiveOnes(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# 遍历列表,遍历到列表中的元素为1时:当前计数+1;碰到0时:将当前计数与最大计数对比,若当前计数大,则将当前计数覆盖最大计数,然,然后将当前计数归0,如此往复,当遍历到最后一个元素时需要特殊处理
now_count = 0 # 当前计数
final_count = 0 # 最大计数
for i in range(len(nums)):
if i == len(nums) - 1: # 遍历到最后一个元素,特殊处理
if nums[i] == 1 :
now_count += 1
if now_count > final_count:
final_count = now_count
elif nums[i] == 1 :
now_count += 1
else:
if now_count > final_count:
final_count = now_count
now_count = 0
return final_count
283. 移动零
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
# 特殊指针法,当前指针遍历列表,若当前指针遍历到非零元素,则将非零元素向前覆盖,然后继续往后遍历;若遍历到0元素,则计数加1。
count = 0 # 计数,记录0元素个数,用于计算覆盖元素的位置
for i in range(0,len(nums)):
if nums[i] != 0:
# 元素向前覆盖
nums[i - count] = nums[i]
else:
count += 1
# 后面元素覆0值
for i in range(0, count):
nums[len(nums) - i] = 0
return nums
27. 移除元素