【python力扣刷题经验分享】——从初入力扣到上分变强!!!

 一,初入力扣

 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)

2.计算列车到站时间

感受熟悉一下。

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的基础知识,语法和做题时的小方法和技巧(努力一周一更,毕竟我也还是个小菜鸡^.^)

### 使用PythonLeetCode的最佳实践和技巧 #### 选择合适的目难度 对于初学者来说,建议从简单的问开始。随着技能的增长逐渐挑战更复杂的问有助于建立信心并逐步掌握更多高级概念[^1]。 #### 掌握核心数据结构与算法 熟悉列表、字典、集合等常用的数据结构以及基本的排序查找算法非常重要。这些基础知识能够帮助更快地理解问需求并设计有效解决方案[^2]。 #### 利用官方文档和其他资源辅助学习 当遇到不熟悉的函数或库时,查阅[官方文档](https://docs.python.org/3/)是一个很好的习惯;同时也可以参考其他开发者撰写的博客文章或者教程视频加深理解和记忆。 #### 学会利用测试案例验证逻辑正确性 编写代码前先思考几个可能存在的边界情况作为自定义输入来进行初步调试。这不仅可以让程序更加健壮可靠,也能减少提交错误答案次数从而节省时间成本。 #### 积极参与讨论区交流心得经验 加入活跃度高的论坛如LeetCode评论区,在那里可以看到多种不同的思维方式解决问的方法论。这种跨视角的学习方式有利于拓宽思维广度并且发现自身不足之处加以改进[^3]。 ```python def example_solution(nums): """ 这里给出一个简单的例子来展示如何构建清晰易读且高效的解答。 参数: nums (List[int]): 输入整数数组 返回值: int: 数组中最大连续子序列之和 """ max_sum = current_sum = float('-inf') for num in nums: current_sum = max(num, current_sum + num) max_sum = max(max_sum, current_sum) return max_sum ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值