算法学习笔记

news2024/12/28 19:10:51

最近无意中看到一个算法的网站,看着感觉介绍得挺系统的,虽然做算法以及指导学生开发各种算法这么些年了,却没有真正系统的学习过(几年前啃过算法导论,但是苦于那蹩脚的中文翻译,也没有去看英文原文)。为此决定好好学习一下,本博文为本人学习下面网站的资料的学习记录,本博文仅为本人学习记录用,随着学习的过程也会不断更新此间内容。

https://labuladong.github.io/algo/https://labuladong.github.io/algo/

Chrome 刷题插件安装

 正所谓工欲善其事,必先利其器,首先下载Chrome浏览器及其插件:

https://chrome.google.com/webstore/detail/leetcode-helper-by-labula/elafhogmnaapleckojedgipgmidneccghttps://chrome.google.com/webstore/detail/leetcode-helper-by-labula/elafhogmnaapleckojedgipgmidneccg

安装成功后,可以在插件列表看到插件图标:

 点击插件图标可以弹出插件弹窗,包含刷新数据的按钮和很多有用的链接:

 建议在 Chrome/商店安装的,这样会在新版本发布后自动更新。

LeetCode 版可以通过点击链接进入:https://leetcode.com/list/9zwo3ww5/

随便点进去一个

感觉确实是很不错,还有一些小的功能可以看下面。此处先不介绍,后面涉及再补上。

Chrome 刷题插件安装使用手册

学习算法和刷题的框架思维

首先给出B站视频,建议看着视频来学习会更加直观。

【labuladong】学习数据结构和算法的框架思维

数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)

所谓的数组应该就是跟cpp里的差不多(连续的,顺序存储)。链表则是,数据+指向下一个数据的指针(非连续的,离散的存储)。

二者的优缺点如下

数组由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但正因为连续存储,内存空间必须一次性分配够,所以说数组如果要扩容,需要重新分配一块更大的空间,再把数据全部复制过去,时间复杂度 O(N);而且你如果想在数组中间进行插入和删除,每次必须搬移后面的所有数据以保持连续,时间复杂度 O(N)。

链表因为元素不连续,而是靠指针指向下一个元素的位置,所以不存在数组的扩容问题;如果知道某一元素的前驱和后驱,操作指针即可删除该元素或者插入新元素,时间复杂度 O(1)。但是正因为存储空间不连续,你无法根据一个索引算出对应元素的地址,所以不能随机访问;而且由于每个元素必须存储指向前后元素位置的指针,会消耗相对更多的储存空间。

数据结构的基本操作:遍历 + 访问(就是存储与修改数据,即增删查改)

数据结构种类很多,但它们存在的目的都是在不同的应用场景,尽可能高效地增删查改

典型的通过迭代,进行遍历访问:

void traverse(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        // 迭代访问 arr[i]
    }
}

参考资料

《算法秘籍》和《刷题笔记》。下载链接:https://pan.baidu.com/s/1PoG0Zxy7H64aXUM-Gj0UuA?pwd=541i 提取码:541i

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

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

相关文章

车用DC-DC模块 1224V转8V3A过认证大塑料外壳

名称&#xff1a;车用12V转8V3A电源转换器 型号&#xff1a;LM40J8V3A3S 性质&#xff1a;非隔离型的BUCK电源转换器&#xff0c; 特点&#xff1a;采用集成IC设计&#xff0c;具有转换效率高&#xff0c;体积小&#xff0c;稳定可靠的特点&#xff0c;采用灌胶工艺&#xf…

从零搭建机器学习平台Kubeflow

1 Kubeflow简介 1.1 什么是Kubeflow 来自官网的一段介绍&#xff1a; Kubeflow 项目致力于使机器学习 (ML) 工作流在 Kubernetes 上的部署变得简单、可移植和可扩展。 Kubeflow的目标不是重新创建其他服务&#xff0c;而是提供一种直接的方法&#xff0c;将用于 ML 的同类最佳…

Java项目:springboot田径运动会管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为管理员、学生两种角色&#xff0c; 管理员主要功能包括&#xff1a; 功能&#xff1a;登录、查看个人资料、修改密码、选手管理、赛事…

SpringBoot 2.7.1学习---构建SpringBoot的几种方式

开发环境: SpringBoot2.7.1需要JDK版本8,Spring版本需要5.3.20或更高版本 maven版本3.5以上 如果不使用内置Tomcat,需要tomcat9.0或以上 Tomcat9好像没有,先搞个 SpringBoot 2.7.1快速入门 构建SpringBoot的几种方式 1.maven方式构建 写一个启动类 且加上SpringBootAppli…

还在手动发早安吗?教你用java实现每日给女友微信发送早安

摘要&#xff1a;教你如何用java实现每日给女友微信发送早安等微信信息。本文分享自华为云社区《java实现每日给女友微信发送早安等微信信息》&#xff0c;作者&#xff1a;穆雄雄 。 前言 据说这个功能最近在抖音上很火&#xff0c;我没有抖音&#xff0c;没有看到。 但是我…

排序

章节目录&#xff1a;一、排序算法1.1 概述1.2 分类1.3 算法复杂度1.4 时间复杂度1.5 空间复杂度二、冒泡排序2.1 概述2.2 算法分析2.3 代码示例三、选择排序3.1 概述3.2 算法分析3.3 代码示例四、插入排序4.1 概述4.2 算法分析4.3 代码示例五、希尔排序5.1 概述5.2 算法分析5.…

裸露土堆识别系统 yolov7

裸露土堆识别系统基于yolov7深度学习架构模型&#xff0c;对现场画面实时分析检测&#xff0c;如检测到画面中的土堆有超过40%部分没被绿色防尘网覆盖&#xff0c;则立即抓拍存档告警。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0…

我靠steam搬砖,日赚几千,投入不到万元

什么做苦力、技能、直播卖货&#xff0c;电商等等对比我这个都是小钱。我这个方法是利用了大部分人的信息差来赚钱。 我就不藏着掖着了&#xff0c;授人以鱼不如授人以渔&#xff0c;反正你赚的又不是我的钱。 什么是“Steam游戏搬砖”呢&#xff1f; 简单来说&#xff0c;就…

Docker网络

网络基础知识 网络相关命令 查看Linux中的网卡 [rootlocalhost ~]# ip link show[rootlocalhost ~]# ls /sys/class/net[rootlocalhost ~]# ip a 状态: UP、DOWN、UNKNOW link/ether&#xff1a;MAC地址 inet&#xff1a;该网卡绑定的IPv4地址 [rootlocalhost ~]# ip link …

Python和MySQL对比(1):用Pandas 实现MySQL语法效果

文章目录一、前言二、语法对比数据表SELECTASWHEREDISTINCTGROUP BYORDER BYHAVINGLIMIT三、小结一、前言 环境&#xff1a; windows11 64位 Python3.9 MySQL8 pandas1.4.2 本文主要介绍 MySQL 中的关键字&#xff1a;SELECT、AS、WHERE、DISTINCT、GROUP BY、ORDER BY、HAVING…

文献检索

文献检索第一篇检索作业总结第一章检索任务1.1检索课题1.2确定选题所属学科1.3中英文检索词第二章检索策略与结果2.1检索中文期刊文献2.1.1 CNKI中国期刊全文数据库2.1.2 维普期刊全文数据库2.1.3 万方期刊数据库2.1.4 超星期刊全文2.2检索中文学位论文2.2.1 CNKI博硕学位论文数…

Java项目:SpringBoot美容院后台管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为美容院后台管理系统&#xff0c; 操作员包含以下功能&#xff1a;操作员登陆,操作员首页,会员列表,添加会员,添加美容产品,购买商品,添…

YOLOV7学习记录之mAP计算

如何评估一个训练好模型的好坏&#xff0c;是目标检测中一个很重要的因素&#xff0c;如常见的TP、FP、AP、PR、map等 TP、FP、TN、FN TP&#xff1a;被正确分类为正样本的数量&#xff1b;实际是正样本&#xff0c;也被模型分类为正样本 FP&#xff1a;被错误分类为正样本的…

Node.js - 数据库与身份认证

文章目录目标一、数据库的基本概念1、什么是数据库2、常见的数据库及分类3、传统型数据库的数据组织结构&#xff08;1&#xff09;Excel 的数据组织结构&#xff08;2&#xff09;传统型数据库的数据组织结构&#xff08;3&#xff09;实际开发中库、表、行、字段的关系二、安…

RV1126笔记十二:实现RTMP多路拉流

若该文为原创文章,转载请注明原文出处。 一、介绍 通过RV1126实现RTMP的多路拉流,并在屏幕上显示出来,这里涉及到ffmpeg几个重要知识点,和RV1126如何在屏幕分屏显示。 二、流程图 流程和单路拉流类似,这里只是涉及拉取后的图像需要解码缩放,在合成分屏显示出来。 具…

阳过→阳康,数据里的时代侧影;谷歌慌了!看各公司如何应对ChatGPT;两份优质AI年报;本周技术高光时刻 | ShowMeAI每周通讯 #003-12.24

这是ShowMeAI每周通讯的第3期。通讯聚焦AI领域本周热点&#xff0c;及其在各圈层泛起的涟漪&#xff1b;关注AI技术进步&#xff0c;并提供我们的商业洞察。欢迎关注与订阅&#xff01; 本周在 CSDN 积极答题一路升到 Top2&#xff0c;被系统误判为 ChatGPT 机器人X﹏X 可见压力…

自动化测试-Cypress快速入门

cypress介绍 一个前端自动化测试工具不同于其他只能测试 UI 层的前端测试工具&#xff0c;Cypress 允许编写所有类型的测试&#xff0c;覆盖了测试金字塔模型的所有测试类型**【界面测试&#xff0c;集成测试&#xff0c;单元测试】**Cypress 测试代码和应用程序均运行在由 Cy…

拦截器与过滤器

什么是过滤器 过滤器 Filter 基于 Servlet 实现&#xff0c;过滤器的主要应用场景是对字符编码、跨域等问题进行过滤。Servlet 的工作原理是拦截配置好的客户端请求&#xff0c;然后对 Request 和 Response 进行处理。Filter 过滤器随着 web 应用的启动而启动&#xff0c;只初…

电商订单对接系列-第1章-整体设计

背景 电商行业在处理订单的业务时&#xff0c;初创一般是直接通过电商后台导出表格&#xff0c;然后根据其来跟进进销存。在单量到了一定规模时&#xff0c;业务场景会变得复杂&#xff0c;如促销套餐&#xff0c;拆单&#xff0c;合单等&#xff0c;一般会购买市面上的…

Android -- 每日一问:介绍一下你经常浏览的 Android 技术网站

经典回答 做为一个合格的 Android 开发者&#xff0c;我想官方的 developer 站点是必上的&#xff0c;有什么网站能比官方更全面和权威呢。而且 Android Developer 站点上还有很多指导性的文章写得很不错&#xff0c;也不用担心英文不好&#xff0c;因为基本上官方都翻译了中文…