有了这个可视化插件,刷题调试更轻松

抽象极昼
• 阅读 2862

如何有效学习算法

学习算法的基本思路就是:先学习算法思想,然后通过做题消化思想,并在做题过程中慢慢学习,掌握一些小技巧。这其中算法思想就是,而经典题目以及做题技巧就是。做题是通过术来完善道。

但是很多人都反应看讲义和做题之间断层严重,也就是一看就会,一些就废。这怎么办呢?

<!-- more -->

除了多写,多练习之外,我认为以下两点可以帮助你:

  1. 做题的时候和讲义(学习资料)进行结合

这是一个很重要的也容易被忽略的点。拿《91 天学算法》来说:看讲义就是学思想,每日一题就是巩固消化思想。做每日一题的时候,要多往讲义上靠靠,比如想一下这道题对应讲义哪一部分,考察的是讲义中提到的哪一个知识点。

  1. 看讲义(学习资料)的时候将例题用可视化的方式自己跑一遍

我刚开始学习算法的时候,基本上也是这种思路。学习完思想做题的时候对例题都在电脑或者纸上画一下代码执行流程,然后和学习的算法思想进行结合。这样不仅算法思想容易吸收,而且也收效缓解了一看就会,一写就废的尴尬境地。

但是毕竟自己画图还是有点成本的,不是所有的人都有动力自己画图的。程序员都很懒,其实我刚开始刷题的时候一直有一个想法, 如果做题有可视化显示该有多好?最好是和我讲义图类似的那种, 这样无疑对新手来说吸收思想效率肯定高。

可视化调试插件

无巧不成书,前几天《91 天学算法》群里有人提到 LeetCode 刷题调试。大家有的用 IDE 调试,有的用会员的调试功能在网页调试。 其实前一阵子我分享刷题技巧的时候也分享了调试插件,没有看过的同学可以看下 力扣刷题的正确姿势是什么?

今天再分享一个适合新手的调试工具,简单易用,直观方便。更关键的是,其已经内置到我的刷题插件 leetcode-cheatsheet 中,直接开箱即用,插件版本大于等于 0.9.0 即可。虽然它暂时还无法自动生成像我讲义里面那么完整的图和动画,但是比文字要直观太多了。后期考虑集成更多的语言以及更多的语法特性以及更好的展示效果。

该使用方式非常简单,完全满足了大家偷懒的需求。你只需要:

  1. 安装刷题插件 leetcode-cheatsheet
插件如何下载与安装可以在公众号回复插件获取
  1. 打开 leetcode 中任意一道题目,写代码。
目前支持 Python3,CPP,JavaScript
  1. 点击下方的可视化调试

有了这个可视化插件,刷题调试更轻松

  1. 按提示修改代码后点击Visualize Execution按钮
如果无法修改代码,可以先点击 edit code

有了这个可视化插件,刷题调试更轻松

这里我就想吐槽一下 leetcode 了。干嘛每一道题函数名字都不一样,真没这个必要。比如都叫 solve 不好么?希望力扣可以考虑一下这个建议。

  1. 通过控制区域控制代码执行,右侧会自动同步的可视化地显示变量信息

有了这个可视化插件,刷题调试更轻松

最后友情提示一下。可视化调试推荐在看资料(比如 91 天学算法的讲义)的时候把其中的例题用可视化的方式调试一遍,填平思路到代码的鸿沟。 之后大家做题不要依赖调试功能,而是先在大脑中调试一下,然后用工具验证。也就是说这个工具,我仅推荐你在两种情况下使用:

  1. 看算法思想资料,做其中的例子的时候一步步调试学习。
  2. 代码有 case 跑不通,先在脑子中过一下,猜测大概出问题的点,然后用工具直接定位到附近通过可视化的方式帮助你分析。

最后大家有什么想要的 feature 可以给我公众号后台或交流群里留言。

点赞
收藏
评论区
推荐文章
徐小夕 徐小夕
4年前
这些经典的前端基础算法题, 你会做几道?
之前因为工作原因接触了很多有意思的算法知识,为了巩固大家的算法基础和编程能力,笔者总结了8道算法题,供大家学习参考.接下来我们来看看题目.1.有一个数组arra1,a2,a3,b1,b2,b3,c1,c2,c3...,通过算法将数组进行拆分,转化为如下格式的数组a1,b1,c1,a2,b2,c2,a3,
徐小夕 徐小夕
4年前
这些经典的前端基础算法题, 你会做几道?
之前因为工作原因接触了很多有意思的算法知识,为了巩固大家的算法基础和编程能力,笔者总结了8道算法题,供大家学习参考.接下来我们来看看题目.1.有一个数组arra1,a2,a3,b1,b2,b3,c1,c2,c3...,通过算法将数组进行拆分,转化为如下格式的数组a1,b1,c1,a2,b2,c2,a3,
Irene181 Irene181
4年前
盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
大家好,我是Python进阶者。今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高。一、前言相信有些小伙伴学习Python有一段时日,但是又不知道自己的Python基础学的如何,这个时候就需要一款神器来检测一下自己的Python基础了。要想检测自己的Python功力最直观的方法当然是做题了,至于做什么题了我们就不得而知了,
九路 九路
4年前
6 手写Java LinkedHashMap 核心源码
概述LinkedHashMap是Java中常用的数据结构之一,安卓中的LruCache缓存,底层使用的就是LinkedHashMap,LRU(LeastRecentlyUsed)算法,即最近最少使用算法,核心思想就是当缓存满时,会优先淘汰那些近期最少使用的缓存对象LruCache的缓存算法LruCache采用的缓存算法为LRU(LeastRe
Souleigh ✨ Souleigh ✨
4年前
学完了C++语法之后该学什么??(数据结构与算法篇)
数据结构与算法数据结构与算法,我就不想多说了,重要性不用说。应届生秋招和春招最大的优势估计就是数据结构与算法的掌握了。上面三门课程的学习,基本也都是离不开数据结构的,对于如何学习数据结构与算法,我觉得可以在写一篇文章了,所以数据结构与算法的学习,我这里不写了。论面试,我觉得 操作系统计算机网络数据库 数据结构算法 这四大块是问的最多的,所以我写的
Stella981 Stella981
3年前
Github最强算法刷题笔记.pdf
资料一昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看到。关于算法刷题的困惑和疑问也经常听朋友们提及。这份笔记里面共包含作者刷LeetCode算法题后整理的数百道题,每道题均附有详细题
Wesley13 Wesley13
3年前
AI面试刷题版
(1)代码题(leetcode类型),主要考察数据结构和基础算法,以及代码基本功虽然这部分跟机器学习,深度学习关系不大,但也是面试的重中之重。基本每家公司的面试都问了大量的算法题和代码题,即使是商汤、face这样的深度学习公司,考察这部分的时间也占到了我很多轮面试的60%甚至70%以上。我去face面试的时候,面试官是residualnet,s
Wesley13 Wesley13
3年前
LeetCode刷题实战61:旋转链表
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选!今天和大家聊的问题叫做旋转链表,我们先来看题面:https://leetcodecn.com/problems/rotatelist/Give
ChatGPT风口下的技术“狂飙”,天翼云荣登ZeroCLUE榜首
最近ChatGPT火了!写代码、写情书、写文章、做题……它啥都会。在ChatGPT强大的功能背后,离不开业内不断精进的人工智能技术的支撑。零样本学习就是ChatGPT的核心技术之一。近日,智能边缘事业部AI团队在中文语言理解零样本学习权威榜单ZeroCLU
菜园前端 菜园前端
2年前
什么是分而治之?
原文链接:什么是分而治之?在我们前面有学习过一系列数据结构、以及相关的一些算法,包含排序、搜索算法。而本次学习的分而治之它不是数据结构,也不是一种算法,而是算法设计中的一种方法,可以理解为是一种思想。我们可以利用这种思想去设计很多种算法。分而治之是将一个问
贾蔷 贾蔷
1个月前
牛客12576题全解析:动态规划+质因数分解解决跳跃问题
一、题目解读牛客12576题是一道经典的算法题,要求给定起点N和终点M,求解从N到M的最少跳跃次数。题目考察的核心在于路径优化与动态规划思想,需结合数论中的质因数分解技巧,通过合理设计算法降低时间复杂度,避免暴力枚举的指数级耗时。二、解题思路采用“动态规划