Leetcode Python学习记录——代码随想录数组篇

一.常见写法

无穷大

在Python中,float(‘inf’) 是一个特殊的浮点数,用于表示无穷大的概念。当你需要表示一个非常大的数值,或者在某些算法中需要一个初始值来表示一个无限大的概念时,可以使用 float(‘inf’)。

res=(0,float('inf'))

if not array: return []

字符串

寻找子串

if j-i<res[1]-res[0]:
   res=(i,j)

return '' if res[1]>len(s) else s[res[0]:res[1]+1]#列表的:,最后范围左闭右开。

二维列表/矩阵

nums = [[0] * n for _ in range(n)]
#若n==5
[
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0]
]
  • [0] * n:这部分生成了一个长度为 n 的列表,列表中的每个元素都是 0。

    for _ in range(n):这个循环表示我们要执行 n 次操作,其中 _ 是一个惯用的变量名,用于表示循环体内不需要这个变量的实际值。这通常用于避免引入不必要的变量名。

    将它们组合在一起,[[0] * n for _ in range(n)] 的含义是创建一个 n x n 的二维列表。每个元素都是一个列表,包含 n 个 0。这种形式常用于创建初始值相同的二维结构,例如矩阵或网格。

  • 注意此时取数要用nums [i] [j],而非nums[i,j]
    因为此时的nums是一个嵌套列表,先找第几个列表,再找其中第几个元素。
    [i,j]只是在Numpy中适用

二.函数

  • list.sort(reverse=True),sort是排序。
  • sortedcontainers是一个有序容器库(排序容器库)。
    SortedList会维持其包含的数据值为升序状态。
from sortedcontainers import SortedList
  • float(‘-inf’)为负无穷
  • List.append() 在列表末尾增加对象元素
  • set()数组去重
  • dict()字典
  • enumerate
    for i, num in enumerate(nums):
    用enumerate写for循环,下标和元素本身都方便操作。range的话下标容易操作而元素不易操作,num in的话元素易操作而下标不容易操作。

Counter

  • 集合——哈希表
    Counter 是 collections 模块中的一个类,它用于统计可哈希对象(如字符串、数字、元组等)的数量。Counter 类可以方便地用来计算列表中元素的出现次数,或者比较两个列表中元素的差异。
  • counter=collections.Counter()
    for k,v in counter.items():
cnt=Counter()
cnt.pop(index=-1)

位运算

  • ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值
  • mid =(left+right+1)>>1是二分法的写法,其中>>是位运算右移一位,实现除以2。

数组总结

连续的内存空间,下标从0开始

方法

注意循环不变量的设置

  1. 二分法
  2. 双指针法
  3. 滑动窗口

Tips

  • 注意缩进
  • 注意边界条件,优先考虑输入0的处理
  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值