菜单

贡献工作流程

相关源文件

本文档描述了 LeetCode 仓库中“每日一题”系统的贡献流程。它涵盖了从认领题目到成为受认可的贡献者的整个过程,包括所需的解决方案格式和提交指南。有关解决方案格式标准的信息,请参阅 解决方案格式

概述

“每日一题”系统是一项社区驱动的计划,贡献者通过该计划解决并记录算法问题。问题最初在社区群组(微信和 QQ)中讨论,然后解决方案被正式化并添加到仓库中,从而创建一个有价值的问题解决思路知识库。

来源: daily/README.md3-20

认领和分配流程

要为“每日一题”系统贡献,请遵循以下步骤:

  1. 浏览可用题目:访问项目看板 https://github.com/azl397985856/leetcode/projects/1,查看状态为“待领取”的题目。

  2. 认领题目:在你选择的题目 issue 帖子中评论“认领”。

  3. 分配:维护者会将 issue 从“待领取”移至“进行中”,并将你指定为解决者。

  4. 通知:您将在被分配到 issue 后收到通知。

来源: daily/README.md7-20

解决方案开发

认领题目后,您需要开发一个全面的解决方案文档

  1. 解决方案格式:创建一个遵循标准格式的 Markdown 文件(详见下文)。

  2. 问题分析:深入分析问题,提炼 issue 讨论中的关键见解。

  3. 实现:开发清晰、高效的解决方案,并附带适当的时间复杂度和空间复杂度分析。

  4. 其他方法:如果适用,记录其他解决方案。

解决方案文档结构

每个每日一题的解决方案都应遵循此标准结构进行格式化

来源: daily/2019-08-09.md3-7 daily/2019-10-11.md3-7 daily/2019-06-14.md3-7

信息卡示例

信息卡提供了问题的关键元数据

## 信息卡片

- 时间:2019-08-09
- 题目链接:https://leetcode-cn.com/problems/minimum-path-sum/
- tag:`动态规划` `Array`

来源: daily/2019-08-09.md3-7

问题描述

包含 LeetCode 上的完整问题陈述、约束和示例。例如:

## 题目描述

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
**说明**:每次只能向下或者向右移动一步。
**示例:**

输入:
[
  [1,3,1],
  [1,5,1],
  [4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。

来源: daily/2019-08-09.md10-25

参考答案

提供对您的解决方案思路、算法和实现的详细解释

  1. 分析:解释您的思路和关键见解
  2. 方法:分步描述算法
  3. 代码:包含注释清晰的代码(带有语言语法高亮)
  4. 复杂度:分析时间复杂度和空间复杂度

复杂度分析示例

**复杂度分析**

- 时间复杂度:O(M * N)
- 空间复杂度:O(1)

来源: daily/2019-08-09.md27-70

其他优秀答案

如果社区讨论中有其他解决方案,请加以记录

## 其他优秀解答

> 暂缺

来源: daily/2019-08-09.md72-74

提交和审查

完成解决方案文档后,请遵循以下步骤提交:

  1. 创建 PR:提交包含您解决方案的拉取请求。

  2. PR 审查:维护者将审查您的提交,以确保:

    • 解决方案的正确性
    • 代码质量和风格
    • 文档的完整性
    • 符合格式标准
  3. 修订:解决在审查过程中提供的任何反馈。

  4. 合并:批准后,您的 PR 将被合并,该 issue 将被移至“已合并”状态。

  5. 认可:您将被认可为该仓库的贡献者。

解决方案文档示例

为了更好地理解预期的格式和质量,请审阅这些解决方案文档示例

  1. 动态规划示例64.最小路径和

    • 展示了动态规划方法以及空间优化的清晰解释
  2. 位运算示例拼凑硬币

    • 展示了不同解决方案方法的详细算法分析
  3. 树形结构操作示例114.flatten-binary-tree-to-linked-list

    • 展示了树形问题的多种解决方案方法

来源: daily/2019-08-09.md daily/2019-10-11.md daily/2019-06-14.md

最佳实践

为了最大化您的贡献价值

  1. 清晰的解释:专注于解释您的思路和算法直觉。

  2. 视觉辅助:在有帮助时包含图表或分步示例。

  3. 代码质量:编写清晰、注释良好的代码,供他人学习。

  4. 复杂度分析:始终包含时间和空间复杂度分析。

  5. 其他方法:提及不同的解决方案策略及其权衡。

通过遵循此工作流程,您不仅为解决单个问题做出了贡献,还为构建全面的算法学习和参考资源做出了贡献。