Giter VIP home page Giter VIP logo

algo-notes's Introduction

算法学习:后天的刻意练习掌握的一种能力

🙉 说明

  • 本项目题目来源:力扣(LeetCode),少部分来源acwing。
  • 题解来源于讨论区和个人理解后手打,仅用于个人复习和朋友间讨论。
  • 题目著作权归力扣(LeetCode) 和acwing所有。商业转载请联系官方授权,非商业转载请注明出处。

刷题方法

每题需要刷五遍,最后两遍用来复习。刷两遍+笔记+复习两遍。

  1. 解题:看懂题目,尝试自己做,推导解法。
  2. 总结:看最优解,重新写一遍,并总结通用思路和关键的易错点。尝试用费曼学习法或者写笔记的方式输出。
  3. 复习:根据笔记思路转换为代码,手写或重打。

刷题辅助

  1. 刷题入门视频
  2. 最快刷题路径
  3. 最秀的算法思维
  4. 最易懂的题解
  5. 最全的谷歌面试指南

刷题心态

  1. 从薄到厚。先用薄教材入门,再找“厚”教材,细细体会其中的细节。
  2. 从厚到薄。做好笔记,寻求最优解。把300题刷两遍,比把600题刷一遍好。
  3. debug 是最重要的能力。(通常在一个领域里,你最不喜欢做的事情,就是这个领域的核心竞争力:)
  4. 量变到质变。大多数问题,其实都是需要“回头看”的。
  •  随着你对一个领域理解的越深入,回头再去看那些曾经的问题,都会产生新的视角,对于很多曾经想不明白的问题也豁然开朗。
     这也是“进步”的根源。如果卡在一个问题上不前进,不给自己“回头看”的机会,甚至最后是放弃了,就什么也没有学会了。
    
  1. 持续地分特定类别刷题,可以带来事半功倍的效果。在能力已经比较强的时候,可以采用打散的方式来刷题,可以更好地锻炼思维的灵活性和应变能力。
  2. 解题三部曲:
  • 一、 读题
    拿到一个题目后,看5分钟,如果5分钟之内看不懂,就mark 下来,留到后面再做,要不很影响刷题的心情。
    
    二、 分析,推导解法
    这个步骤要有意识地单独拎出来,不要去想任何实现相关地事情,这样做可以极大地降低心智负担,高效地想出题目的解法。
    算法的封装可以让自己的脑力发挥在问题的核心点。
    
    三、 转换为代码
    怎么定义变量,保存状态,用递归,还是用循环加辅助数据结构等等,都是将思路转换成代码要做的事情。这个能力也需要刻意地去练习。
    
  1. 算法能力的提升,是一个长期的事情,需要持续地学习和做题。特别关注刷题时的正反馈。注意不要死磕!算法学习,特别讲求方法和技巧,死磕非但磕不过去,还可能留下对算法的心里阴影,导致学习障碍。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.