刷题全家桶全面更新!

学算法认准 labuladong

点击卡片可搜索文章👇

在线网站 labuladong.online

56dd09f64381a51be0f6bc47159cd7a6.png

快过年了,咱不讲太硬核的东西了,就给大家简单汇报一下近期我给刷题全家桶做的更新。

上篇文章有很多读者问算法可视化是否会开源,我有这个打算,不过得重构一下,把代码写的好看一点,尽量再把 Python 语言支持上,然后再考虑开源供大家学习参考。

本文主要介绍两个重要更新,第一个是网站和插件全线集成可视化编辑器,第二个是编辑器支持@visualize choose/unchoose注释更清晰地帮助读者理解递归过程。

全面集成可视化编辑器

上篇文章发布了网页版本的可视化编辑器,地址:

https://labuladong.online/algo-visualize/

但这样有两个问题:

1、目前网站只支持 JavaScript 语言,而部分读者对 JavaScript 不太熟悉。

2、大家刷题的时候一般是使用我的 Chrome 插件、vscode 插件 或者 jetbrains 插件,如果对某个题目的解法不理解,还需要复制代码到网页上去修改和运行,这样有些不方便。

所以我做了如下事情来尝试解决这些问题

1、Python 版本的编辑器研发已经提上日程,过年假期看看能否搞定。

2、我专门写了一个 JS 极简教程,保你 5 分钟上手:

https://labuladong.online/algo/intro/js/

大家可能也有体会,对于算法来说,语言就只是个工具,难点在于算法的思想。其实你只要了解 JS 的基本语法和常用数据结构,就可以上手使用可视化编辑器了。

3、重写了算法可视化面板的使用教程,使其更精简,可操作性更强,用可交互的方式带大家了解面板的使用方法,链接如下:

https://labuladong.online/algo/intro/visualize/

4、我将可视化编辑器全面集成到了我的算法网站和所有配套插件中,你随时可以修改我的示例代码并执行,验证你的奇思妙想,下面简单展示一下。

首先是网站的集成,所有可视化面板上都会出现一个「编辑」按钮,点击后即可编辑示例代码,修改完成后点击「运行」按钮即可将修改后的代码进行可视化:

d824114a15b196e73131253d0d16118b.png

d10610aefc6b17e49810a4417791bfea.png

Chrome 插件(版本 >= V4.4.0)是类似的,可视化面板中也添加了「编辑」按钮,你可以直接修改示例代码并执行:

86dbdabb7c20ef638365efb449418cf3.png

vscode 插件(版本 >= V1.5.1)同理:

ac4c3591cf457d87cd8be9cecc8b1505.png

jetbrains 插件(版本 >= V1.8.1)同理:

028ed0504fc43a106662b50b665af585.png

choose/unchoose 注释

之前我介绍过可视化面板的@visualize status注释,将递归函数抽象成递归树,每个节点代表一次递归调用,节点的值就是递归的「状态」。

而本次支持的@visualize choose/unchoose注释更进一步,可以把每次递归所做的「选择」显示在递归树的树枝上。树枝上显示的内容可以进行自定义,进一步方便大家理解。

详细的使用方法和交互式教程可以在网站上查看:

https://labuladong.online/algo/intro/visualize/

我这里就简单展示几个截图,比如我编了一道简单的算法题,即让你生成长度为3的所有二进制字符串,直接看我写的代码及可视化效果吧:

309547da6e77bac4d1db11ba91a8169a.png

这里我在@visualize choose注释中写了更详细的注解,当鼠标移动到递归树节点上,就会显示路径上所做的选择,是不是就把每一步递归所做的选择清晰地展示出来了?这段回溯代码是不是就很容易看懂了?

就介绍到这里吧,各位可以亲自去体验体验,更多的玩法,有待大家发掘~

一些计划

在可视化面板的教程中,我尝试使用了交互式提问的方式教大家使用:

2680091231d088e43cc9a8f38ae7aefb.png

没想到这种学习方式得到了很多读者的好评,得益于可视化面板功能的不断完善,我计划优化网站/课程中的所有教程内容,让可视化面板更好地融合到教程之中,进一步提高大家的学习效率和对算法的理解深度。

就这样吧,最后祝大家新年快乐,新的一年勇猛精进,奥利给!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/461168.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 识别车牌信息

打开我们心爱的Android Studio 导入需要的资源 gradle //开源车牌识别安卓SDK库implementation("com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3")button.setOnClickListener(v -> {Log.d("Test", "");try (InputStream file getAs…

leetcode(哈希表)49.字母异位词分组(C++详细解释)DAY5

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 示例 1: 输入: strs [“eat”, “tea”…

基于 Python opencv 的人脸识别的酒店客房入侵系统的检测

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

nodejs+vue高校实验室耗材管理系统_m20vy

用户功能: 登录后要有一个首页 比如:可以看见目前的耗材消耗记录,可做成图表菜单栏在左侧显示 1.个人信息管理 可以对基本信息进行修改,(修改密码时需要验证) 2.耗材管理(耗材信息) 普通用户可以查询当前相关耗材信息[…

【Leetcode】236. 二叉树的最近公共祖先

文章目录 题目思路代码结果 题目 题目链接 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可…

无人机飞控系统飞行原理介绍,旋翼无人机飞行控制技术详解

旋翼飞行器是通过调节多个电机转速来改变螺旋桨转速,实现升力的变化,进而达到飞行姿态控制的目的。 多旋翼飞行原理详解 以四旋翼飞行器为例,飞行原理如下图所示,电机1和电机3逆时针旋转的同时,电机2和电机4顺时针旋…

高级FPGA开发之基础协议PCIe(二)

高级FPGA开发之基础协议之PCIe(二) 一、TLP报文类型 在PCIe总线中,存储器读写、I/O读写和配置读写请求TLP主要由以下几类报文组成: 1.1 存储器读请求TLP和读完成TLP 当PCIe主设备(RC或者EP)访问目标设备…

flutter监听app进入前后台状态的实现

在开发app的过程中,我们经常需要根据app的前后台的状态,做一些事情,那么我们在flutter中是如何实现这一监听的? flutter给我们提供了WidgetsBindingObserver来进行一些状态的判断,但是判断前后台的状态只是该API种其中…

SpringCloud-Ribbon:负载均衡(基于客户端)

6. Ribbon:负载均衡(基于客户端) 6.1 负载均衡以及Ribbon Ribbon是什么? Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负…

阿里云资源包管理

-我守在梦的出口,任凭人来人走 阿里云对象存储中的下行流量包是什么? 阿里云对象存储(OSS)中的下行流量包是一种预付费的流量套餐,用于支付从阿里云 OSS 存储桶下载数据产生的流量费用。当你的应用程序或用户从 OSS 存…

飞马座卫星

1960年代马歇尔太空飞行中心的历史显然与建造土星五号月球火箭有关。然而,鲜为人知的是该中心在设计科学有效载荷方面的早期工作。 Fairchild 技术人员正在检查扩展的 Pegasus 流星体探测表面。Pegasus 由马里兰州黑格斯敦的 Fairchild Stratos Corporation 通过马歇…

Django(十)

1. Ajax请求 浏览器向网站发送请求时:URL 和 表单的形式提交。 GETPOST 特点:页面刷新。 除此之外,也可以基于Ajax向后台发送请求(偷偷的发送请求)。 依赖jQuery编写ajax代码 $.ajax({url:"发送的地址"…