使用入门
视频链接
【手把手带你刷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 = namedef 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 += 1if now_count > final_count:final_count = now_countelif nums[i] == 1 :now_count += 1else:if now_count > final_count:final_count = now_countnow_count = 0return 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] = 0return nums
27. 移除元素