标签归档:cpp

Antlr4-ANTLR 是一个功能强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件

ANTLR(另一个用于语言识别的工具)是一个功能强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它被广泛用于构建语言、工具和框架。根据语法,ANTLR生成一个解析器,该解析器可以构建解析树,还可以生成一个侦听器接口(或访问器),从而可以轻松地响应感兴趣的短语的识别

考虑到日间工作的限制,我在这个项目上的工作时间有限,因此我必须首先专注于修复bug,而不是更改/改进功能集。很可能我每隔几个月就会突然做一次。如果您的bug或Pull请求没有产生响应,请不要生气!–parrt

作者和主要贡献者

有用的信息

您可能还会发现以下页面很有用,特别是当您想要使用各种目标语言时

权威的ANTLR 4参考

程序员总是遇到解析问题。无论是JSON这样的数据格式,SMTP这样的网络协议,Apache的服务器配置文件,PostScript/PDF文件,还是简单的电子表格宏语言-ANTLR v4,本书都将揭开这个过程的神秘面纱。ANTLRv4已经从头开始重写,使得构建解析器和构建在其上的语言应用程序比以往任何时候都更加容易。这本完全改写的新版畅销ANTLR权威参考向您展示了如何利用这些新功能

你可以买这本书The Definitive ANTLR 4 Reference在亚马逊或electronic version at the publisher’s site

您会发现Book source code有用的

附加语法

This repository是不带动作的语法集合,其中根目录名是语法分析的语言的全小写名称。例如,java、cpp、cSharp、c等

IoT-For-Beginners-面向初学者的物联网课程

微软的Azure云倡导者很高兴提供为期12周、24节课的IoT基础知识课程。每节课包括课前和课后测验、完成课程的书面说明、解决方案、作业等。我们的基于项目的教学法允许您边学边建,这是一种行之有效的新技能“坚持”的方法

这些项目涵盖了食物从农场到餐桌的旅程。这包括农业、物流、制造业、零售业和消费业-所有这些领域都是物联网设备的热门行业领域

衷心感谢我们的作者Jen FoxJen LooperJim Bennett,和我们的素描艺术家Nitya Narasimhan

也感谢我们的团队Microsoft Learn Student Ambassadors他们一直在审阅和翻译这门课程-Aditya GargAnurag SharmaArpita DasAryan JainBhavesh SunejaFaith HunjaLateefah BelloManvi JhaMireille TanMohammad Iftekher (Iftu) Ebne JalalMohammad ZulfikarPriyanshu SrivastavThanmai Gowducheruvu,以及Zina Kamel

见见团队吧!

教师,我们有included some suggestions如何使用这门课程。如果您想创建您自己的课程,我们还提供了一个lesson template

学生,自学使用本课程,分叉整个回购,自己完成练习,先从讲前小考开始,然后朗读讲座,完成活动的睡觉。尝试通过理解课程而不是复制解决方案代码来创建项目;但是,在每个面向项目的课程的/Solutions文件夹中都可以找到该代码。另一个想法是和朋友们组成一个学习小组,一起学习内容。为了进一步研究,我们建议Microsoft Learn

有关本课程的视频概述,请查看此视频:

🎥点击上面的图片观看关于该项目的视频!

教育学

在构建这门课程时,我们选择了两个教学原则:确保它是基于项目的,并包括频繁的测验。到本系列结束时,学生们将构建植物监控和浇水系统、车辆跟踪器、用于跟踪和检查食物的智能工厂设置以及声控烹饪定时器,并将学习物联网的基础知识,包括如何编写设备代码、连接到云、分析遥测和在边缘运行人工智能

通过确保内容与项目一致,这一过程对学生来说更具吸引力,并将增加对概念的保留

此外,课前的一次低风险的测验可以确定学生学习某一主题的意图,而课后的第二次测验可以确保学生更好地记住某一主题。本课程设计灵活有趣,可以全部或部分选修。这些项目一开始规模很小,到12周周期结束时变得越来越复杂。

每个项目都基于学生和业余爱好者可用的真实硬件。每个项目都着眼于特定的项目领域,提供相关的背景知识。要成为一名成功的开发人员,了解您正在解决问题的领域是很有帮助的,只要提供此背景知识,学生就可以在他们作为物联网开发人员可能被要求解决的那种现实世界问题的背景下思考他们的物联网解决方案和学习。学生了解他们正在构建的解决方案的“原因”,并了解最终用户

硬件

我们有两种物联网硬件可供选择,具体取决于个人偏好、编程语言知识或偏好、学习目标和可用性。我们还为那些无法访问硬件或想要在承诺购买之前了解更多信息的人提供了一个“虚拟硬件”版本。你可以阅读更多,并在网上找到一份“购物清单”。hardware page,包括从Seeed Studio的朋友那里购买完整套件的链接

💁找到我们的Code of ConductContributing,以及Translation指导方针。我们欢迎您的建设性意见!

每节课包括:

  • 草图注释
  • 可选补充视频
  • 课前热身测验
  • 书面课
  • 有关基于项目的课程,请参阅有关如何生成项目的分步指南
  • 知识检查
  • 一项挑战
  • 补充阅读
  • 作业
  • 课后测验

关于测验的一个注解:所有的测验都包含在内in this app,共48个测验,每个测验3个问题。它们是从课程内部链接的,但测验应用程序可以在本地运行;请按照中的说明进行操作quiz-app文件夹。他们正在逐渐本地化。

课程

项目名称 教授的概念 学习目标 链接的课程
01 Getting started 物联网简介 在设置您的第一台物联网设备时,了解物联网的基本原理以及物联网解决方案的基本构建块,如传感器和云服务 Introduction to IoT
02 Getting started 更深入地研究物联网 了解有关物联网系统组件以及微控制器和单板计算机的更多信息 A deeper dive into IoT
03 Getting started 通过传感器和执行器与物理世界交互 了解用于从物理世界收集数据的传感器和用于发送反馈的执行器,同时构建夜灯 Interact with the physical world with sensors and actuators
04 Getting started 将您的设备连接到互联网 通过将夜灯连接到MQTT代理,了解如何将物联网设备连接到Internet以发送和接收消息 Connect your device to the Internet
05 Farm 预测植物生长 了解如何使用物联网设备捕获的温度数据预测植物生长 Predict plant growth
06 Farm 检测土壤水分 了解如何检测土壤水分和校准土壤水分传感器 Detect soil moisture
07 Farm 植物自动浇水 了解如何使用继电器和MQTT自动和定时浇水 Automated plant watering
08 Farm 将您的工厂迁移到云 了解云和云托管的物联网服务,以及如何将您的工厂连接到这些服务之一,而不是公共MQTT代理 Migrate your plant to the cloud
09 Farm 将您的应用程序逻辑迁移到云 了解如何在云中编写响应物联网消息的应用程序逻辑 Migrate your application logic to the cloud
10个 Farm 确保您的工厂安全 了解物联网的安全性,以及如何使用密钥和证书保护您的工厂安全 Keep your plant secure
11个 Transport 位置跟踪 了解物联网设备的GPS位置跟踪 Location tracking
12个 Transport 存储位置数据 了解如何存储物联网数据以便稍后可视化或分析 Store location data
13个 Transport 可视化位置数据 了解有关在地图上可视化位置数据以及地图如何以2维形式表示真实3D世界的信息 Visualize location data
14. Transport 土工栅栏 了解GeoFence,以及如何使用它们在供应链中的车辆接近目的地时发出警报 Geofences
15个 Manufacturing 培训一名水果质量检测员 了解有关在云中培训图像分类器以检测水果质量的信息 Train a fruit quality detector
16个 Manufacturing 通过物联网设备检查水果质量 了解如何使用物联网设备上的水果质量检测仪 Check fruit quality from an IoT device
17. Manufacturing 在边缘运行你的水果探测器 了解有关在边缘的物联网设备上运行水果检测器的信息 Run your fruit detector on the edge
18岁 Manufacturing 从传感器触发水果质量检测 了解如何从传感器触发水果质量检测 Trigger fruit quality detection from a sensor
19个 Retail 培训一名库存检验员 了解如何使用对象检测来训练库存检测器清点商店中的库存 Train a stock detector
20个 Retail 检查物联网设备的库存 了解如何使用对象检测模型检查物联网设备的库存 Check stock from an IoT device
21岁 Consumer 使用物联网设备识别语音 了解如何识别来自物联网设备的语音以构建智能计时器 Recognize speech with an IoT device
22 Consumer 理解语言 了解如何理解对物联网设备说的句子 Understand language
23个 Consumer 设置计时器并提供语音反馈 了解如何在物联网设备上设置计时器,并就计时器何时设置和何时结束提供口头反馈 Set a timer and provide spoken feedback
24个 Consumer 支持多种语言 了解如何支持多种语言,包括与您的智能计时器对话和从您的智能计时器响应 Support multiple languages

脱机访问

您可以使用以下命令脱机运行此文档Docsify分叉这个回购,install Docsify在本地计算机上,然后在此存储库的根文件夹中键入docsify serve该网站将在您的本地主机上的端口3000上提供服务:localhost:3000

PDF格式

如果需要,您可以生成此内容的PDF以供脱机访问。要做到这一点,请确保您拥有npm installed并在此存储库的根文件夹中运行以下命令:

npm i
npm run convert

需要帮助!

你愿意贡献一份翻译吗?请阅读我们的translation guidelines并添加输入to one of the translations issues如果您想要翻译成一种新的语言,请提出一个新的问题进行跟踪

其他课程

我们团队制作其他课程!查看:

图像属性

您可以在本课程中所需的位置找到本课程中使用的图像的所有属性Attributions

Ciphey-⚡在不知道密钥或密码的情况下自动解密加密、解码编码和破解散列⚡

使用自然语言处理和人工智能的全自动解密/解码/破解工具,以及一些常识

🤔这是什么?

输入加密文本,取回解密文本

“哪种类型的加密?”

这就是问题所在。你不知道,你只知道它可能是加密的。西菲会帮你想办法的

西菲可以在3秒或更短的时间内解决大部分问题。

Ciphey的目标是成为自动化大量解密和解码的工具,例如多基编码、经典密码、散列或更高级的密码术

如果您对密码学了解不多,或者您想在自己处理密文之前快速检查密文,Ciphey适合您

技术部分Ciphey使用定制的人工智能模块(自动搜索),并带有密码检测接口用来近似加密的东西。然后是定制的、可定制的自然语言处理语言检查器界面,它可以检测给定文本何时变为明文。

这里没有神经网络或臃肿的人工智能。我们只用最快最少的东西

而这只是冰山一角。有关完整的技术说明,请查看我们的documentation

✨功能

  • 支持50+加密/编码例如二进制、莫尔斯电码和Base64。经典密码,如凯撒密码、仿射密码和维吉内尔密码。以及现代加密,如重复密钥异或等。For the full list, click here
  • 带有增强搜索的定制人工智能(AuSearch),用于回答“使用了什么加密?”从而导致解密所需的时间不到3秒
  • 定制的自然语言处理模块Ciphey可以确定某些内容是否是明文。无论明文是JSON、CTF标志还是英语,Ciphey都可以在几毫秒内得到它
  • 多语言支持目前,只有德语和英语(带有AU、UK、CAN、USA变体)
  • 支持加密和哈希而像CyberChef Magic这样的替代品是做不到的
  • C++ core惊人的速度

🔭Ciphey vs CyberChef

🔁base64编码42次

名字 ⚡西菲⚡ 🐢网络厨师🐢
GIF
时间 2秒 6秒
设置
  • 对文件运行密码
  • 将正则表达式参数设置为“{”
  • 您需要知道要递归多少次
  • 你要知道一直到现在都是Base64
  • 您需要加载CyberChef(它是一个臃肿的JS应用程序)
  • 对CyberChef有足够的了解来创建这个渠道
  • 把火柴倒过来

注意事项gif可能会在不同的时间加载,因此一个gif的加载速度可能明显快于另一个gif。
关于魔术的注解CyberChef与Ciphey最相似的功能是Magic。Magic在此输入上立即失效并崩溃。我们迫使CyberChef竞争的唯一方法是手动定义它

我们还测试了CyberChef和Ciphey6 GB文件西菲破解了它5分54秒CyberChef还没开始就崩溃了

📊Ciphey vs Katana vs CyberChef Magic

名字 ⚡西菲⚡ 🗡️片名🗡️ 🐢网络厨师魔术🐢
高级语言检查器
支持加密
以反乌托邦主题命名的发行🌃
支持哈希
易于设置
我能猜出什么东西是用什么加密的
由黑客为黑客创建

🎬快速入门

如果您在安装Ciphey时遇到问题,read this.

‼️重要链接(文档、安装指南、不一致支持)

安装指南 文档 不和谐 Docker图像(来自REMnux)
📖Installation Guide 📚Documentation 🦜Discord 🐋Docker Documentation

🏃‍♀️运行Ciphey

有3种方法可以运行Ciphey

  1. 文件输入ciphey -f encrypted.txt
  2. 不合格的输入ciphey -- "Encrypted input"
  3. 正常方式ciphey -t "Encrypted input"

要消除进度条、概率表和所有噪音,请使用静音模式

ciphey -t "encrypted text here" -q

有关参数的完整列表,请运行ciphey --help

⚗️正在导入Ciphey

您可以导入Ciphey的Main并在您自己的程序和代码中使用它。from Ciphey.__main__ import main

🎪贡献者

Ciphey是由Bee2008年,并于2019年复兴。如果没有西菲,它就不会有今天的地位Cyclic3-UOL网络安全协会主席

西菲被复活并重新创造了Cyber Security Society用于CTF。如果你来利物浦,可以考虑做个演讲或赞助我们的活动。给我们发电子邮件到cybersecurity@society.liverpoolguild.org了解更多信息🤠

主要学分感谢George H研究出如何使用适当的算法来加快搜索过程特别感谢varghalladesign用来设计徽标。看看他们的其他设计作品吧!

🐕‍🦺Contributing

不要害怕贡献自己的力量!我们有很多很多你可以做的事情来帮助我们。每一个都贴上标签,并用例子很容易解释。如果你想做贡献却被困住了,那么标签@bee-san✨

或者,加入不和谐组并在那里发送消息(链接到contrib file)或作为徽章出现在本自述文件的顶部

请阅读contributing file有关如何投稿的确切详细信息,请参阅✨

通过这样做,您的名字将被添加到下面的自述文件中,并成为一个不断发展的项目的一部分!

💰财政捐赠者

这笔捐款不仅将用于资助Ciphey及其作者的未来,还将用于资助利物浦大学的网络安全协会

GitHub不支持“赞助这个项目,我们会平均分配资金”,所以选择一个链接,我们会自己解决🥰

✨贡献者

感谢这些优秀的人们(emoji key):


cyclic3

🎨🚧💻🤔

Brandon

🎨🚧💻🤔

michalani

💻

ashb07

💻

Shardion

🐛

Bryan

🌍📖

Lukas Gabriel

💻🐛🌍🤔

Darshan

🐛

SkeletalDemise

💻

Christian Clauss

💻🐛

Machinexa2

🖋

Anant Verma

💻🐛

XVXTOR

📖

Itamikame

💻

MikeMerz

💻

Jacob Galam

💻🐛

TuxTheXplorer

🌍

Itamai

💻🐛

Filipe

🌍

Malathi

💻

Jack

🌍

Younes

🌍

Marnick Vandecauter

🌍

Michael V

💻

chuinzer

🌍

blackcat-917

🌍📖

Åsmund Brekke

💻

Sashreek Shankar

💻

cryptobadger

💻🐛

elf

💻

Roger Yu

💻

dysleixa

💻

Mohammad Zulfikar

📖

此项目遵循all-contributors规格。欢迎任何形式的投稿!

Leetcode-master 刷题攻略:200W道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图

一些闲话:

  1. 介绍:本项目是一套完整的刷题计划,旨在帮助大家少走弯路,循序渐进学算法,关注作者
  2. Pdf版本「代码随想录」算法精讲 PDF 版本那就是。
  3. 刷题顺序:自述文件已经将刷题顺序排好了,按照顺序一道一道刷就可以。
  4. 学习社区:一起学习打卡/面试技巧/如何选择Offer/大厂内推/职场规则/简历修改/技术分享/程序人生。欢迎加入「代码随想录」学习社区那就是。
  5. 提交代码:本项目统一使用C++语言进行讲解,但已经有JAVA、Python、Go、JavaScript等等多语言版本,感谢这里的每一位贡献者,如果你也想贡献代码点亮你的头像,点击这里了解提交代码的方式.
  6. 转载须知:以下所有文章皆为我(程序员Carl)的原创.引用本项目文章请注明出处,发现恶意抄袭或搬运,会动用法律武器维护自己的权益.让我们一起维护一个良好的技术创作环境!


LeetCode刷题攻略

刷题攻略的背景

很多刚开始刷题的同学都有一个困惑:面对leetcode上近两千道题目,从何刷起.

大家平时刷题感觉效率低,浪费的时间主要在三点:

  • 找题
  • 找到了不应该现阶段做的题
  • 没有全套的优质题解可以参考

其实我之前在知乎上回答过这个问题,回答内容大概是按照如下类型来刷数组->链表->哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,再从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目.

但我能设身处地的感受到:即使有这样一个整体规划,对于一位初学者甚至算法老手寻找合适自己的题目也是很困难,时间成本很高,而且题目还不一定就是经典题目.

对于刷题,我们都是想用最短的时间按照循序渐进的难度顺序把经典题目都做一遍,这样效率才是最高的!

所以我整理了LeetCode刷题攻略:一个超级详细的刷题顺序,每道题目都是我精心筛选,都是经典题目高频面试题,大家只要按照这个顺序刷就可以了,你没看错,自述已经把题目顺序都排好了,文章顺序就是刷题顺序!挨个刷就可以,不用自己再去题海里选题了!

而且每道题目我都写了的详细题解(图文并茂,难点配有视频),力扣上我的题解都是排在对应题目的首页,质量是有目共睹的.

那么现在我把刷题顺序都整理出来,是为了帮助更多的学习算法的同学少走弯路!

如果你在刷LeetCode,强烈建议先按照本攻略刷题顺序来刷,刷完了你会发现对整个知识体系有一个质的飞跃,不用在题海茫然的寻找方向.

最新文章会首发在公众号“代码随想录”,扫码看看吧,你会发现相见恨晚!

如何使用该刷题攻略

电脑端还看不到留言,大家可以在公众号「代码随想录」,左下角有“刷题攻略”,这是手机版刷题攻略,看完就会发现有很多录友(代码随想录的朋友们)在文章下留言打卡,这份刷题顺序和题解已经陪伴了上万录友了,同时也说明文章的质量是经过上万人的考验!

欢迎每一位学习算法的小伙伴加入到这个学习阵营来!

目前已经更新了,数组->链表->哈希表->字符串->栈与队列->树->回溯->贪心,八个专题了,正在讲解动态规划!

在刷题攻略中,每个专题开始都有理论基础篇,并不像是教科书般的理论介绍,而是从实战中归纳需要的基础知识.每个专题结束都有总结篇,最这个专题的归纳总结.

如果你是算法老手,这篇攻略也是复习的最佳资料,如果把每个系列对应的总结篇,快速过一遍,整个算法知识体系以及各种解法就重现脑海了.

目前“代码随想录”刷题攻略更新了:200多篇文章,精讲了200道经典算法题目,共60w字的详细图解,部分难点题目还搭配了20分钟左右的视频讲解那就是。

这里每一篇题解,都是精品,值得仔细琢磨那就是。

我在题目讲解中统一用C++语言,但你会发现下面几乎每篇题解都配有其他语言版本,JAVA、Python、go、javascript等等,这正是热心小伙们的贡献的代码,当然我也会严格把控代码质量。

所以也欢迎大家参与进来,完善题解的各个语言版本,拥抱开源,让更多小伙伴们收益那就是。

准备好了么,刷题攻略开始咯,快走快走!


前序

(持续更新中.)

知识星球精选

  1. 选择方向的时候,我也迷茫了
  2. 刷题就用库函数了,怎么了?
  3. 关于实习,大家可能有点迷茫!
  4. 马上秋招了,慌得很!
  5. Carl看了上百份简历,总结了这些!
  6. 面试中遇到了发散性问题…..
  7. 英语到底重不重要!
  8. 计算机专业要不要读研!
  9. 秋招和提前批都越来越提前了….
  10. 你的简历里「专业技能」写的够专业么?

数组

  1. 数组过于简单,但你该了解这些!
  2. 数组:每次遇到二分法,都是一看就会,一写就废
  3. 数组:就移除个元素很难么?
  4. 数组:有序数组的平方,还有序么?
  5. 数组:滑动窗口拯救了你
  6. 数组:这个循环可以转懵很多人!
  7. 数组:总结篇

链表

  1. 关于链表,你该了解这些!
  2. 链表:听说用虚拟头节点会方便很多?
  3. 链表:一道题目考察了常见的五个操作!
  4. 链表:听说过两天反转链表又写不出来了?
  5. 链表:两两交换链表中的节点
  6. 链表:删除链表的倒数第 N 个结点
  7. 链表:链表相交
  8. 链表:环找到了,那入口呢?
  9. 链表:总结篇!

哈希表

  1. 关于哈希表,你该了解这些!
  2. 哈希表:可以拿数组当哈希表来用,但哈希值不要太大
  3. 哈希表:哈希值太大了,还是得用set
  4. 哈希表:用set来判断快乐数
  5. 哈希表:map等候多时了
  6. 哈希表:其实需要哈希的地方都能找到map的身影
  7. 哈希表:这道题目我做过?
  8. 哈希表:解决了两数之和,那么能解决三数之和么?
  9. 双指针法:一样的道理,能解决四数之和
  10. 哈希表:总结篇!(每逢总结必经典)

字符串

  1. 字符串:这道题目,使用库函数一行代码搞定
  2. 字符串:简单的反转还不够!
  3. 字符串:替换空格
  4. 字符串:花式反转还不够!
  5. 字符串:反转个字符串还有这个用处?
  6. 帮你把KMP算法学个通透
  7. 字符串:KMP算法还能干这个!
  8. 字符串:总结篇!

双指针法

双指针法基本都是应用在数组,字符串与链表的题目上

  1. 数组:就移除个元素很难么?
  2. 字符串:这道题目,使用库函数一行代码搞定
  3. 字符串:替换空格
  4. 字符串:花式反转还不够!
  5. 链表:听说过两天反转链表又写不出来了?
  6. 链表:删除链表的倒数第 N 个结点
  7. 链表:链表相交
  8. 链表:环找到了,那入口呢?
  9. 哈希表:解决了两数之和,那么能解决三数之和么?
  10. 双指针法:一样的道理,能解决四数之和
  11. 双指针法:总结篇!

栈与队列

  1. 栈与队列:来看看栈和队列不为人知的一面
  2. 栈与队列:我用栈来实现队列怎么样?
  3. 栈与队列:用队列实现栈还有点别扭
  4. 栈与队列:系统中处处都是栈的应用
  5. 栈与队列:匹配问题都是栈的强项
  6. 栈与队列:有没有想过计算机是如何处理表达式的?
  7. 栈与队列:滑动窗口里求最大值引出一个重要数据结构
  8. 栈与队列:求前 K 个高频元素和队列有啥关系?
  9. 栈与队列:总结篇!

二叉树

题目分类大纲如下:

  1. 关于二叉树,你该了解这些!
  2. 二叉树:一入递归深似海,从此offer是路人
  3. 二叉树:听说递归能做的,栈也能做!
  4. 二叉树:前中后序迭代方式的写法就不能统一一下么?
  5. 二叉树:层序遍历登场!
  6. 二叉树:你真的会翻转二叉树么?
  7. 本周小结!(二叉树)
  8. 二叉树:我对称么?
  9. 二叉树:看看这些树的最大深度
  10. 二叉树:看看这些树的最小深度
  11. 二叉树:我有多少个节点?
  12. 二叉树:我平衡么?
  13. 二叉树:找我的所有路径?
  14. 本周总结!二叉树系列二
  15. 二叉树:以为使用了递归,其实还隐藏着回溯
  16. 二叉树:做了这么多题目了,我的左叶子之和是多少?
  17. 二叉树:我的左下角的值是多少?
  18. 二叉树:递归函数究竟什么时候需要返回值,什么时候不要返回值?
  19. 二叉树:构造二叉树登场!
  20. 二叉树:构造一棵最大的二叉树
  21. 本周小结!(二叉树系列三)
  22. 二叉树:合并两个二叉树
  23. 二叉树:二叉搜索树登场!
  24. 二叉树:我是不是一棵二叉搜索树
  25. 二叉树:搜索树的最小绝对差
  26. 二叉树:我的众数是多少?
  27. 二叉树:公共祖先问题
  28. 本周小结!(二叉树系列四)
  29. 二叉树:搜索树的公共祖先问题
  30. 二叉树:搜索树中的插入操作
  31. 二叉树:搜索树中的删除操作
  32. 二叉树:修剪一棵搜索树
  33. 二叉树:构造一棵搜索树
  34. 二叉树:搜索树转成累加树
  35. 二叉树:总结篇!(需要掌握的二叉树技能都在这里了)

回溯算法

题目分类大纲如下:

  1. 关于回溯算法,你该了解这些!
  2. 回溯算法:组合问题
  3. 回溯算法:组合问题再剪剪枝
  4. 回溯算法:求组合总和!
  5. 回溯算法:电话号码的字母组合
  6. 本周小结!(回溯算法系列一)
  7. 回溯算法:求组合总和(二)
  8. 回溯算法:求组合总和(三)
  9. 回溯算法:分割回文串
  10. 回溯算法:复原IP地址
  11. 回溯算法:求子集问题!
  12. 本周小结!(回溯算法系列二)
  13. 回溯算法:求子集问题(二)
  14. 回溯算法:递增子序列
  15. 回溯算法:排列问题!
  16. 回溯算法:排列问题(二)
  17. 本周小结!(回溯算法系列三)
  18. 回溯算法去重问题的另一种写法
  19. 回溯算法:重新安排行程
  20. 回溯算法:N皇后问题
  21. 回溯算法:解数独
  22. 一篇总结带你彻底搞透回溯算法!

贪心算法

题目分类大纲如下:

  1. 关于贪心算法,你该了解这些!
  2. 贪心算法:分发饼干
  3. 贪心算法:摆动序列
  4. 贪心算法:最大子序和
  5. 本周小结!(贪心算法系列一)
  6. 贪心算法:买卖股票的最佳时机II
  7. 贪心算法:跳跃游戏
  8. 贪心算法:跳跃游戏II
  9. 贪心算法:K次取反后最大化的数组和
  10. 本周小结!(贪心算法系列二)
  11. 贪心算法:加油站
  12. 贪心算法:分发糖果
  13. 贪心算法:柠檬水找零
  14. 贪心算法:根据身高重建队列
  15. 本周小结!(贪心算法系列三)
  16. 贪心算法:根据身高重建队列(续集)
  17. 贪心算法:用最少数量的箭引爆气球
  18. 贪心算法:无重叠区间
  19. 贪心算法:划分字母区间
  20. 贪心算法:合并区间
  21. 本周小结!(贪心算法系列四)
  22. 贪心算法:单调递增的数字
  23. 贪心算法:买卖股票的最佳时机含手续费
  24. 贪心算法:我要监控二叉树!
  25. 贪心算法:总结篇!(每逢总结必经典)

动态规划

动态规划专题已经开始啦,来不及解释了,小伙伴们上车别掉队!

  1. 关于动态规划,你该了解这些!
  2. 动态规划:斐波那契数
  3. 动态规划:爬楼梯
  4. 动态规划:使用最小花费爬楼梯
  5. 本周小结!(动态规划系列一)
  6. 动态规划:不同路径
  7. 动态规划:不同路径还不够,要有障碍!
  8. 动态规划:整数拆分,你要怎么拆?
  9. 动态规划:不同的二叉搜索树
  10. 本周小结!(动态规划系列二)

背包问题系列:

  1. 动态规划:关于01背包问题,你该了解这些!
  2. 动态规划:关于01背包问题,你该了解这些!(滚动数组)
  3. 动态规划:分割等和子集可以用01背包!
  4. 动态规划:最后一块石头的重量 II
  5. 本周小结!(动态规划系列三)
  6. 动态规划:目标和!
  7. 动态规划:一和零!
  8. 动态规划:关于完全背包,你该了解这些!
  9. 动态规划:给你一些零钱,你要怎么凑?
  10. 本周小结!(动态规划系列四)
  11. 动态规划:Carl称它为排列总和!
  12. 动态规划:以前我没得选,现在我选择再爬一次!
  13. 动态规划: 给我个机会,我再兑换一次零钱
  14. 动态规划:一样的套路,再求一次完全平方数
  15. 本周小结!(动态规划系列五)
  16. 动态规划:单词拆分
  17. 动态规划:关于多重背包,你该了解这些!
  18. 听说背包问题很难? 这篇总结篇来拯救你了

打家劫舍系列:

  1. 动态规划:开始打家劫舍!
  2. 动态规划:继续打家劫舍!
  3. 动态规划:还要打家劫舍!

股票系列:

  1. 动态规划:买卖股票的最佳时机
  2. 动态规划:本周我们都讲了这些(系列六)
  3. 动态规划:买卖股票的最佳时机II
  4. 动态规划:买卖股票的最佳时机III
  5. 动态规划:买卖股票的最佳时机IV
  6. 动态规划:最佳买卖股票时机含冷冻期
  7. 动态规划:本周我们都讲了这些(系列七)
  8. 动态规划:买卖股票的最佳时机含手续费
  9. 动态规划:股票系列总结篇

子序列系列:

  1. 动态规划:最长递增子序列
  2. 动态规划:最长连续递增序列
  3. 动态规划:最长重复子数组
  4. 动态规划:最长公共子序列
  5. 动态规划:不相交的线
  6. 动态规划:最大子序和
  7. 动态规划:判断子序列
  8. 动态规划:不同的子序列
  9. 动态规划:两个字符串的删除操作
  10. 动态规划:编辑距离
  11. 为了绝杀编辑距离,Carl做了三步铺垫,你都知道么?
  12. 动态规划:回文子串
  13. 动态规划:最长回文子序列
  14. 动态规划总结篇

(持续更新中.)

单调栈

  1. 单调栈:每日温度
  2. 单调栈:下一个更大元素I

图论

十大排序

数论

高级数据结构经典题目

  • 并查集
  • 最小生成树
  • 线段树
  • 树状数组
  • 字典树

海量数据处理

算法模板

各类基础算法模板

B站算法视频讲解

以下为B站「代码随想录」算法讲解视频:

(持续更新中.)

贡献者

你可以点此链接查看LeetCode-大师的所有贡献者。感谢你们补充了LeetCode-大师的其他语言版本,让更多的读者收益于此项目。

关于作者

大家好,我是程序员carl,哈工大师兄,acm校赛、黑龙江省赛、东北四省赛金牌、亚洲区域赛铜牌获得者,先后在腾讯和百度从事后端技术研发,csdn博客专家。对算法和C++后端技术有一定的见解,利用工作之余重新刷leetcode。

加入刷题微信群,备注:“个人简单介绍”+组队刷题

(也欢迎与我交流,备注:“个人简单介绍”+交流,围观朋友圈,做点赞之交(备注没有自我介绍不通过哦)


公众号

更多精彩文章持续更新,微信搜索:“代码随想录”第一时间围观,关注后回复:“666PDF”可以获得所有算法专题原创。

“代码随想录”每天准时为你推送一篇经典面试题目,帮你梳理算法知识体系,轻松学习算法!、并且公众号里有大量学习资源,也有我自己的学习心得和方法总结,更有上万录友们在这里打卡学习.

来看看就知道了,你会发现相见恨晚!

Leetcode题解,记录自己的LeetCode解题之路

仓库介绍

leetcode题解,记录自己的leetcode解题之路。

本仓库目前分为五个部分:

  • 第一个部分是leetcode经典题目的解析,包括思路,关键点和具体的代码实现.
  • 第二部分是对于数据结构与算法的总结
  • 第三部分是anki卡片,将leetcode题目按照一定的方式记录在anki中,方便大家记忆.
  • 第四部分是每日一题,每日一题是在交流群(包括微信和QQ)里进行的一种活动,大家一起解一道题,这样讨论问题更加集中,会得到更多的反馈。而且这些题目可以被记录下来,日后会进行筛选添加到仓库的题解模块.
  • 第五部分是计划,这里会记录将来要加入到以上三个部分内容

🍖仓库食用指南

  • 这里有一张互联网公司面试中经常考察的问题类型总结的思维导图,我们可以结合图片中的信息分析一下.

(图片来自LeetCode)

其中算法,主要是以下几种:

  • 基础技巧:分治、二分、贪心
  • 排序算法:快速排序、归并排序、计数排序
  • 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
  • 图论:最短路径、最小生成树
  • 动态规划:背包问题、最长子序列

数据结构,主要有如下几种:

  • 数组与链表:单/双向链表
  • 栈与队列
  • 哈希表
  • 堆:最大堆/最小堆
  • 树与图:最近公共祖先、并查集
  • 字符串:前缀树(字典树)/后缀树

数据结构与算法的总结

精选题解

💻插件

或许是一个可以改变你刷题效率的浏览器扩展插件.

插件地址:https://chrome.google.com/webstore/detail/leetcode-cheatsheet/fniccleejlofifaakbgppmbbcdfjonle?hl=en-US。

不能访问谷歌商店的朋友可以去我的公众号回复插件获取离线版.强烈推荐大家使用谷歌商店安装,这样如果有更新可以自动安装,毕竟咱们的插件更新还是蛮快的.

❗怎么刷LeetCode?

LEETCODE经典题目的解析(200多道)

这里仅列举具有代表性题目,并不是全部题目

目前更新了200多道题解,加上专题涉及的题目,差不多有300道那就是。

简单难度题目合集

这里的题目难度比较小,大多是模拟题,或者是很容易看出解法的题目,另外简单题目一般使用暴力法都是可以解决的.这个时候只有看一下数据范围,思考下你的算法复杂度就行了.

当然也不排除很多Hard题目也可以暴力模拟,大家平时多注意数据范围即可。

以下是我列举的经典题目(带91字样的表示出自91天学算法(活动):

中等难度题目合集

中等题目是力扣比例最大的部分,因此这部分我的题解也是最多的.大家不要太过追求难题,先把中等难度题目做熟了再说.

这部分的题目要不需要我们挖掘题目的内含信息,将其抽象成简单题目.要么是一些写起来比较麻烦的题目,一些人编码能力不行就挂了.因此大家一定要自己做,即使看了题解“会了”,也要自己码一遍.自己不亲自写一遍,里面的细节永远不知道.

以下是我列举的经典题目(带91字样的表示出自91天学算法(活动):

困难难度题目合集

困难难度题目从类型上说多是:

  • 设计题
  • 游戏场景题目
  • 中等题目的跟进

从解法上来说,多是:

  • 图算法
  • 动态规划
  • 二分法
  • DFS和BFS
  • 状态压缩
  • 剪枝

从逻辑上说,要么就是非常难想到,要么就是非常难写代码.这里我总结了几个技巧:

  1. 看题目的数据范围,看能否暴力模拟
  2. 暴力枚举所有可能的算法往上套,比如图的题目.
  3. 总结和记忆解题模板,减少解题压力

以下是我列举的经典题目(带91字样的表示出自91天学算法(活动):

🔱*Anki卡片

我是Anki主要分为两个部分:一部分是关键点到题目的映射,另一部分是题目到思路,关键点,代码的映射。

全部卡片都在anki-card

使用方法:

Anki-文件-导入-下拉格式选择“打包的anki集合”,然后选中你下载好的文件,确定即可.

更多关于Anki使用方法的请查看anki 官网

(目前已更新卡片一览(仅列举正面):

  • 二分法解决问题的关键点是什么,相关问题有哪些?
  • 如何用栈的特点来简化操作,涉及到的题目有哪些?
  • 双指针问题的思路以及相关题目有哪些?
  • 滑动窗口问题的思路以及相关题目有哪些?
  • 回溯法解题的思路以及相关题目有哪些?
  • 数论解决问题的关键点是什么,相关问题有哪些?
  • 位运算解决问题的关键点是什么,相关问题有哪些?

已加入的题目有:#2#3#11

📈大事件

  • 2021-02-23:STAR破四万

💝贡献

  • 如果有想法和创意,请提issue或者进群提
  • 如果想贡献增加题解或者翻译,可以参考贡献指南

    关于如何提交题解,我写了一份指南

  • 如果需要修改项目中图片这里存放了项目中绘制图的源代码,大家可以用draw.io打开进行编辑.

💌鸣谢

感谢为这个项目作出贡献的所有小伙伴

许可证

CC BY-NC-ND 4.0

Project-based-learning-基于项目的教程的精选列表

Project Based Learning

编程教程列表,学员可以在这些教程中从头开始构建应用程序。这些教程分为不同的主要编程语言。有些拥有混合的技术和语言

要开始,只需fork此仓库即可。有关投稿指南,请参阅CONTRIBUTING.md

目录:

C/C++:

网络编程

OpenGL:

C#:

闭合:

灵丹妙药

二郎

F编号:

Java:

JavaScript:

HTML和CSS:

移动应用:

Web应用程序:

节点:

VUE

其他(Hapi,Express.):

D3.js

Others (Hapi, Express…):

D3.js

游戏开发:

桌面应用程序:

其他:

科特林:

Lua:

L?VE:

巨蟒:

网络抓取:

机器人:

数据科学:

机器学习:

OpenCV:

深度学习:

Ruby on Rails:

反应:

开始:

PHP:

OCaml:

红宝石:

角度:

哈斯克尔:

R:

Rust:

Scala:

Swift:

其他资源

CS-Notes-📚技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计

算法 操作系统 网络 面向对象  数据库  Java 系统设计   工具 编码实践   后记
:pencil2: :computer: :cloud: :art: :floppy_disk: :coffee: :bulb: :wrench: :watermelon: :memo:

笔记内容按照中文文案排版指北进行排版,以保证内容的可读性.

云:网络

软盘_磁盘:数据库

咖啡:Java

灯泡:系统设计

ART:面向对象

扳手:工具

西瓜:编码实践

备注:后记

排版

致谢

本仓库的内容不是将网上的资料随意拼凑而来,除了少部分引用书上和技术文档的原文(这部分内容都在末尾的参考链接中加了出处),其余都是我的原创.在您引用本仓库内容或者对内容进行修改演绎时,请署名并以相同方式共享,谢谢.

转载文章请在开头明显处标明该页面地址,公众号等其它转载请联系zhengyc101@163.com