LeetCode

用LeetCode开始刷题,感觉会学到一些零散的东西,拿来记一记。

希望可以帮到来人

网站记录

如何科学上分?,不得不说,灵神确实做了一个造福众人的设计。

还有灵神的课,可以说很有益处

1
这里是Bug

9/29

同时调用两个列表中的函数

1
2
3
4
5
6
class Solution:
def sortPeople(self, names: List[str], heights: List[int]) -> List[str]:
mix = [(name, height) for name, height in zip(names, heights)]
mix = sorted(mix, key=lambda x: x[1])
sorted_names = [name for name, _ in mix]
return sorted_names

同时调用列表的位置和数值

1
2
3
s = ["hello", "world"]
for i, j in enumerate(s):
print("position = ", i,"key = ", j)

image-20230929151514827

集合增加使用.add()

1
2
3
dic = set()
for i in range(len(s) - k + 1):
dic.add(s[i:i+k])

使用add()用来为集合增加元素。

使用map

map可以用来表示多个函数,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
# 定义一个函数,将两个数相加
def add(x, y):
return x + y

# 创建两个列表
list1 = [1, 2, 3]; list2 = [4, 5, 6]

# 使用map函数将add函数应用于对应的元素
result = map(add, list1, list2)

# 转换为列表以查看结果
result_list = list(result)
print(result_list)

得到结果,如下。

image-20231004105052177

10/2023

使用链表

其实我想吐槽为什么Python还要用链表,直接列表不好吗?(小白发问)

对于链表头的调用,直接调用即可。。。

二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 右侧
def bisect_right(a, x, l=0, r=None):

    if l < 0:

        raise ValueError('lo must be non-negative')

    if r is None:

        r = len(a)

    while l < r:

        mid = (l+r)//2

        if x < a[mid]:

            r = mid

        else:

            l = mid+1

    return l
# 左侧
def bisect_left(a, x, l=0, r=None):

    if l < 0:

        raise ValueError('lo must be non-negative')

    if r is None:

        r = len(a)

    while l < r:

        mid = (l+r)//2

        if a[mid] < x:

            l = mid+1

        else:

            r = mid

    return l

LeetCode
http://example.com/2023/09/29/LeetCode/
作者
mid2rain
发布于
2023年9月29日
许可协议