深入解析:随时随地学算法:Hello-Algo与cpolar的远程学习方案

news/2025/10/1 8:36:14/文章来源:https://www.cnblogs.com/wzzkaifa/p/19122082

文章目录

    • **前言**
    • 1.关于hello-algo
    • 2.安装Docker和Docker compose
    • 3.本地部署hello-algo
    • 4. hello-algo本地访问
    • 5.cpolar内网穿透工具安装
    • 6.创建远程连接公网地址
    • 7.固定Uptime Kuma公网地址
        • **同时,我还可以将学习资源分享给其他学习者,共同进步。Hello-Algo与cpolar的结合,为算法学习提供了更加便捷和灵活的方式。**

前言

Hello-Algo作为一款开源的算法学习平台,以其生动的动画图解和丰富的代码示例受到学习者的喜爱。它涵盖了从基础数据结构到复杂算法的全面内容,通过直观的可视化方式帮助学习者理解抽象概念。同时,Hello-Algo支持多种编程语言的代码实现,让学习者可以根据自己的喜好选择学习方式。

从学习者的角度来看,Hello-Algo的优点在于它的系统性和互动性。它按照循序渐进的方式组织知识点,每个算法都配有详细的讲解和示例代码,让学习过程更加高效。内置的交互式练习让我可以动手实践,巩固所学知识。然而,在外出时,由于无法访问本地的Hello-Algo服务,学习进度会受到影响。

cpolar内网穿透工具的使用,解决了Hello-Algo的远程访问问题。通过cpolar,我可以将本地的Hello-Algo服务映射到公网,随时随地通过手机或电脑访问学习资源。例如,在通勤途中,我可以通过手机浏览器查看算法动画,复习所学知识。这种灵活的学习方式让我能够充分利用碎片化时间,提高学习效率。

image-20241015105746189

1.关于hello-algo

Hello-Algo是一个旨在帮助编程爱好者系统地学习数据结构和算法的开源项目。它通过多种创新的方式,为学习者提供了一个直观、互动的学习平台。从基本的数据结构到复杂的算法,涵盖各种经典算法问题,每种都有详细的原理和应用场景介绍。而且还有动画展示数据结构的变化过程和算法执行的步骤,能帮助初学者更好的理解抽象概念。

Github地址:https://github.com/krahets/hello-algo?spm=a2c6h.12873639.article-detail.7.67bd542bZUgP9b

它不仅提供了丰富的动画图解,让抽象的概念变得生动易懂,还涵盖了12种编程语言的代码实现,包括 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust、C 和 Zig,满足了不同学习者的需求。

Animation example

以其动画图解的直观性、多语言代码示例的丰富性、社区互动的互助性以及本地一键部署的便捷性为特点,提供了一个全面、互动且易于访问的算法和数据结构学习平台。这些特点不仅使得复杂算法概念的理解和记忆变得更加容易,也极大地促进了学习者之间的交流和知识共享,同时允许用户在自己的环境中实践和探索算法,从而深化学习体验。

Running code example

2.安装Docker和Docker compose

本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker。

在终端中执行下方命令安装docker:

curl -fsSL https://get.docker.com -o get-docker.sh

然后再启动docker

sudo sh get-docker.sh

最后我们在docker容器中运行下 hello world 看一下是否安装成功。

sudo docker container run hello-world

可以看到出现了hello world,说明我们已经安装docker成功,就可以进行下一步了

image-20241008151101668

此时Docker已经安装完了,我们进行下一步。

3.本地部署hello-algo

本项目提供了一键安装脚本,前提是需要安装git可以使用以下命令一键安装。

git clone https://github.com/krahets/hello-algo.git

image-20241015140632831

现在就已经安装成功了,输入下方命令进入到hello-algo里面

cd hello-algo

现在输入下方命令来启动hello-algo

sudo docker compose up -d

image-20241015155923663

启动完成后我们可以输入下方命令查看一下端口号

sudo docker ps

image-20241015152015136

现在就已经全部都安装成功了,可以通过打开web浏览器输入localhost:8000来浏览Hello-algo了。

4. hello-algo本地访问

image-20241015160306700

进入到hell-algo了,能看到页面非常的清晰,想学习哪个章节可以随意点击,并且可以调换白天or黑夜模式,语言也是可以选择的。

image-20241015152737200

小结

上面在本地Linux中使用Docker成功部署了hello-algo,并局域网访问成功。整体来说hello-algo是一款非常不错的免费算法学习工具,它提供了完备的功能,并且具有非常好的实用性和易用性,并且也非常容易安装部署。

如果想不在同一个局域网时远程访问本地部署的hello-algo学习算法,可以创建一个公网地址,这里我使用的是cpolar内网穿透,通过cpolar转发本地端口映射的http公网地址,我们可以很容易实现远程访问,无需自己注册域名购买云服务器,可节省大量费用。

5.cpolar内网穿透工具安装

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

6.创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:helloalgo注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:https://localhost:8000
  • 域名类型:随机域名
  • 地区:选择China Top

image-20241015153210604

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241015153312036

如下图所示,成功实现使用公网地址异地远程访问本地部署的hello-algo

image-20241015153403850

使用上面的cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到我们hello-algo管理界面,这样一个利用公网地址可以进行远程访问的隧道就创建好了,无需自己购买云服务器,使用cpolar创建隧道即可发布到公网进行远程访问,新域名登录,可能需要重新登陆!

7.固定Uptime Kuma公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网:https://www.cpolar.com

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241015153547548

保留成功后复制保留的二级子域名地址:

image-20241015153623345

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20241015153755703

修改隧道信息,将保留成功的二级子域名配置到隧道中

点击更新

image-20241015153732507

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20241015154030929

最后,我们使用固定的公网地址访问hello-algo管理界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

image-20241015154055696

接下来就可以随时随地进行公网访问管理hello-algo了,还把公网地址分享给身边的人。自己用的话,无需云服务器,还可以实现异地远程访问!以上就是如何在Linux Ubuntu系统Docker本地安装hello-algo的全部过程。

同时,我还可以将学习资源分享给其他学习者,共同进步。Hello-Algo与cpolar的结合,为算法学习提供了更加便捷和灵活的方式。

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

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

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

相关文章

【MySQL】MySQL索引失效场景全面解析与优化指南 - 实践

【MySQL】MySQL索引失效场景全面解析与优化指南 - 实践2025-10-01 08:31 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

环保局网站建设方案云智网站建设公司

3月15日,测吧(北京)科技有限公司(以下简称测吧)项目总监王雪冬来到计算机学院对校企合作、学生就业、学生竞赛等一系列工作进行了深入研讨,并向计算机学院颁发了优秀组织单位和优秀指导老师奖。会议由黄曼绮…

比较简洁大方的网站做外账经常进哪几个网站

本文详细介绍了烧录OpenHarmony系统到开发板的操作流程。从基础的硬件准备和软件环境设置入手,详细说明了如何配置开发环境、构建系统镜像等过程,详细描述了烧录过程中的关键步骤,以及如何使用专用工具将OpenHarmony系统镜像传输到开发板。同…

建站之星服务器网站信息平台建设方案

了解int和Integer的区别 int是Java的基本数据类型,用于表示整数值。Integer是int的包装类,它是一个对象,可以包含一个int值并提供一些额外的功能。 Java集合框架中的集合类(如List、Set、Map)只能存储对象,…

绵阳网站改版深圳海外医疗网站建设

1.TIDB和MySQL对比 对比内容MySQLTiDB架构设计一个传统的单机数据库系统,采用主从复制和分区表等方式来实现水平扩展一个分布式的 NewSQL 数据库,采用分布式存储和分布式事务等技术,支持水平扩展和高可用性事务支持 InnoDB 存储引擎来支持事…

一文掌握 Apache SeaTunnel 构建优秀的系统与分发基础架构

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【JavaScript 性能优化实战】第六篇:性能监控与自动化优化 - 指南

【JavaScript 性能优化实战】第六篇:性能监控与自动化优化 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

做门户网站赚钱吗软文营销软文推广

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么? 2、TLB的entry里都是有什么? 3、MMU操作…

sqlite-vec 简单试用

sqlite-vec 简单试用sqlite-vec 官方实际有一些文档,同时github 也有不少示例,以下就是一个简单使用(集成python) 创建虚拟表参考命令import sqlite3 import sqlite_vec from sqlite_vec import serialize_float32…

linux 系统cshrc 资料

linux 系统cshrc 资料pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

建设积分商城网站多少钱要交个人所得税

磁力猫磁力链接是一种特殊的下载链接,磁力猫磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远…

做搞机网站贵州最好的网站建设推广公司哪家好

写在前面的话AMF(Action Message Format)是一种二进制序列化格式,之前主要是Flash应用程序在使用这种格式。近期,Code White发现有多个Java AMF库中存在目前,漏洞相关信息已上报至美国CERT(详情请参考美国CERT VU#307983)概述目前&#xff0c…

冷库 东莞网站建设化妆品品牌策划方案

一、前言:二、什么是跨域问题?三、 为什么会出现跨域问题?四、什么情况下会出现跨域?五、如何解决跨域问题? 5.1 使用CrossOrigin注解5.2 使用WebMvcConfigurer5.3 使用Filter六、代码示例 前端代码:后端后…

详细介绍:Oracle与Kingbase深度兼容体验:从连接配置到性能优化全解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

胶州专业建站免费制作论坛网站

synchronized重要!重要!重要!重要的事情说三遍,一定要记下来哦。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同…

[LeetCode] 1518. Water Bottles

There are numBottles water bottles that are initially full of water. You can exchange numExchange empty water bottles from the market with one full water bottle. The operation of drinking a full water …

2025 年西安品质楼盘住宅推荐排行榜权威发布,精选优质楼盘推荐

近年来,西安房地产市场持续发展,各类楼盘数量不断增多,但市场上楼盘品质参差不齐的问题也逐渐凸显。部分楼盘存在区位优势不明显、交通不便、周边配套不完善等情况,还有一些楼盘在建筑质量、户型设计、社区环境等方…

Python国庆祝福 - 指南

Python国庆祝福 - 指南2025-10-01 08:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

某商业银行项目管理建设演进报告 - 指南

某商业银行项目管理建设演进报告 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

建设网站的费用明细wordpress与微信连接

人永远是第一位的。 Scrum团队里有一个Scrum master、一个Product owner和若干个Developer。人数大概在10人左右,甚至更少。千万别在Scrum团队再搞什么小组,scrum团队就是最原子的团队了。我见过有些不专业的12人的scrum团队里,还安插了几个…