一,初入力扣
1.特殊的输入
欢迎各位旅行者们,力扣的做题方式与其他的刷题平台不一样,你会遇到如下几种形式。
这些均是官方定义的,如果你不够了解def,class,或者english。只能静静的看着,不过不要慌张,可以按照以下步骤来攻略他们。
2.了解def
def
关键字,你可以定义一个函数并指定函数的名称、参数以及函数体内的操作。以下是一个简单的函数定义示例:
def greet(name):
print("Hello, " + name + "!")
# 调用函数
greet("Alice")
在这个示例中,def
关键字用于定义了一个名为 greet
的函数,该函数接受一个参数 name
,然后在函数体内打印出一条问候语。你可以通过调用 greet("Alice")
来使用这个函数并传递参数 "Alice"
。
函数定义的一般形式如下:
def function_name(parameters):
# 函数体
# 执行操作
return value
也就是说,在力扣中
twoSum
是函数的名称,表示这个函数的作用是找到数组中两个数的和等于目标值的索引。(self, nums: List[int], target: int)
是函数的参数列表。在这里:self
是指向对象实例的引用,通常在类中定义方法时会用到,表示对象本身。在做题时,大部分都没什么用。nums: List[int]
表示参数nums
是一个整数列表,函数将在这个列表中查找两个数的和等于目标值。“:”后面的是提示,不是一个实际的参数。target: int
表示参数target
是一个整数,表示目标值。“:”后面的是提示,不是一个实际的参数。
-> List[int]
表示函数的返回类型是一个整数列表。这意味着这个函数将返回一个包含两个数的索引的整数列表,这两个数的和等于目标值。(做题时几乎用不上)
总结——就是nums,target已经给你了,且已经赋好值了,不用你来完成输入,你只需要对nums和target进行操作,最后return “答案” 就可以了。如果还不了解可以刷
1. 两数之和 - 力扣(LeetCode)
感受熟悉一下。
3.了解class
-
def __init__(self, val=0, next=None):
:这是ListNode
类的构造函数,用来初始化链表节点对象。在这个构造函数中:-
self
是指向对象实例的引用。 -
val=0
表示节点的值,默认为0。这个值通常存储节点中的数据。 -
next=None
表示指向下一个节点的指针,默认为None
。这个指针用来构建链表结构,将当前节点连接到下一个节点。
-
-
self.val = val
:这一行代码将构造函数中传入的val
参数赋值给当前节点对象的val
属性。 -
self.next = next
:这一行代码将构造函数中传入的next
参数赋值给当前节点对象的next
属性。这样就可以将当前节点与下一个节点连接起来。
我知道,刚学习python的友友们看不懂,这里涉及到了类与对象的知识。找篇文章好好研究一下吧!(其实我也讲不清楚)
ps:力扣中的这类问题加上def来递归起来,就要具体问题具体分析了,建议多做一些简单题,看不懂就看题解,一点一点print看看定义出来的规律。
3.了解特殊定义题
这类题型是官方已经定义好了的,需要了解他的意思和题目给出的设定。看不懂就研究题解。
4.多刷简单题,“定义”题
刷题时首选简单的,通过率高的,当你觉得了解差不多了,就去找一找其他类型的定义题,轻车熟路之后,恭喜你终于到16冒险等级了!!!
二,从新人到新兵(不断变强!)
1.参加周赛!参加周赛!参加周赛!
力扣每两周都会有一场双周赛,每周都会有一场周赛。(感受一下大佬的支配!)
每次竞赛的下周四会出竞赛分,它是来判断你能力和水平的方法。
2.刷符合自己难度分段的题
这里就不得不提到力扣的一位史诗级大佬,@bilibili灵茶山艾府(题讲得好,声音也十分好听)
每次周赛,双周赛。灵神都会直播讲解,直播录像也会放到b站里。
回归正题——这位大佬的关于如何科学上分(来自与b站灵茶山艾府)就讲到了,练习刷分变强的方法。此图文中包含了两个链接,可以显示出竞赛题的分数,竞赛题合集及其分数段。可以依靠其来提升自己不断变强!!!
3.一些其他的工具和小技巧
1.无所不能的ai
将题目复制粘贴给ai,极有可能帮你做出来(当然不能作弊!!!不能偷懒!!!)。
还可以帮你转码,比如这道题只有cpp的答案或者解析,你可以将代码复制粘贴给ai并告送它要转换的语言。
还可以给你讲解你看不懂的代码。
2.将做出来的题,写出思路
这就跟高中刷题写题路一样,它会让你更加了解接触这道题的所需要的方法,并且以后回过头来看时会有成就感。
以上是我在力扣的一些经验和感悟,如果有不对的地方,望指正。
以后我会更新一些python的基础知识,语法和做题时的小方法和技巧(努力一周一更,毕竟我也还是个小菜鸡^.^)