关键词:
文章目录
前言
很多人看到我的博客,太多专栏不知道从何学起,为了广大人民群众的根本利益,我决定写一个阅读指引,按照这个指引进行学习,多加练习,假以时日,势必能够……算了,还是看你自己能学多少以及能够坚持到哪里了。加油吧,少年!坚持就是胜利!迈出第一步就成功了一半!
专栏 | 定位 | 适宜人群 |
---|---|---|
「 光天化日学C语言 」 | 「 入门 」 | 没有任何语言基础 |
「 LeetCode零基础指南 」 | 「 初级 」 | 零基础快速上手力扣 |
「 C语言入门100例 」 | 「 中级 」 | 零基础持续C语言练习教程 |
「 算法零基础100讲 」 | 「 高级 」 | 零基础持续算法练习教程 |
「 画解数据结构 」 | 「 高级 」 | 「 推荐 」 数据结构动图教程 |
「 算法进阶50讲 」 | 「 资深 」 | 进阶持续算法练习教程 |
「 LeetCode算法题集汇总 」 | 「 资深 」 | 全面的力扣算法题练习集锦 |
「 夜深人静写算法 」 | 「 资级 」 | 竞赛高端算法集锦 |
一、语言基础
1、「 光天化日学C语言 」
学习算法,还是需要有一门语言作为基础的,推荐用 C语言,并且可以看下这个专栏,了解一些简单的 C语言语法。虽然没有更新完,但是只要看前五节内容,就能够对 C语言 的语法大体有一个了解。
读完这五节,基本能够了解 C语言 的输入输出 了。对于初学者来说,可以先看这么几节,然后我们继续看下面的内容,等遇到相关知识点时再回来翻开即可。
二、刷题必读
光看不练肯定是不行的,所以主要还是要刷题,我这里推荐的是 LeetCode,主要原因是因为现在一些大厂面试的时候基本都是在 牛客 或者 LeetCode 上找的题,而 LeetCode 上的题更加系统,如果这里的题能够掌握大部分,那面试刷题这快肯定是不慌了。当然,对于竞赛选手,这个难度肯定是远远不够的。不过,这是后话了,我们先来看简单的。
1、「 LeetCode零基础指南 」
一开始刷题的时候,一定要刷水题。刷水题是为了让你养成刷题的习惯,一开始就刷难题很容易被劝退。刚开是的时候,建立信心是很重要的事情。
建立信心的过程是需要逐渐培养的,通过不断刷题,把题目数量提上来,才能不断的建立信心。所以,很多时候,如果遇到题目告诉你一定要用某个方法来做,但是你又想不出来的时候,你就想办法先把它过掉再说。
例如,下面这道题:
实现一个函数
multiply
,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
int multiply(int A, int B) // (1)
return A * B; // (2)
-
(
1
)
(1)
(1) 这里
int
是C/C++中的一种类型,代表整数,即 Integer,传入参数是两个整数; -
(
2
)
(2)
(2) 题目要求返回两个整数的乘积,并且要求不能用
*
,那如果我用了会怎么样?答案是并不会怎么样,因为平台不会去对它做语法分析,只是调用了你的函数,提供一些输入数据,如果输出数据和它给定的相同,就算通过。作为你接触算法的第一道题,其实这些条件都无所谓的,能过就行,他只检测输入输出,不检测你实际代码。
对于新人来说,把问题过掉比问题本身更重要,题数的增加,是信心的增加,信心比什么都重要,有了信心,你才能继续往下走,只要你能往下推进,你就能继续学习,继续学习你迟早会学到相应的算法。好了,过了这题以后,把这道题放入你的重刷列表,等你对算法有一定理解以后再来用题目要求的方法来过了它。
这个专栏主要讲解了一些 LeetCode 刷题时的一些难点和要点,主要分为以下几个章节,并且会持续补充一些方法论的文章。文章有试读,可以简单先看一看试读文章。
三、语言入门
1、「 C语言入门100例 」
这个专栏的目的是加深对 C语言 的理解,通过看题做题,不断加深每个语法以及简单算法的作用。
该专栏每个算法都会提供例题,并且要求玩家实现一个函数,主函数需要自己写,示例如下:
#include <stdio.h> // (1) 标准输入输出库
int add(int a, int b)
return a + b; // (2) 这就是一个最简单的算法:加法算法
int main()
int a = add(1, 3); // (3) 算法输入两个参数,输出一个参数;
printf("%d\\n", a); // (4) 将算法结果输出到屏幕上来验证结果
return 0;
试读文章如下,可以看下是否满足自身需要:
四、算法入门
1、「 算法零基础100讲 」
如果你只是想学会写代码,或许 「 算法与数据结构 」 并不是那么重要,但是,想要进一步发展自己的事业,「 算法与数据结构 」 是必不可少的。
现在一些主流的大厂,诸如:字节、网易、腾讯、阿里、美团、京东、滴滴 等等,在面时都会让候选人写一道 「 算法题 」 ,如果你敲不出来,可能你的 「 offer 」 年包就打了骨折,或者直接与 「 offer 」 失之交臂,都是有可能的。
当然,它不能完全代表你的 「 编码能力 」 ,因为有些算法确实是很巧妙,加上紧张的面试氛围,想不出来其实也是正常的,但是你能确保面试官是这么想的吗?我们要做的是 「 十足的准备 」 ,既然决定出来, 「 offer 」 当然是越高越好,毕竟大家都要养家糊口,房价又这么贵,如果能够在算法这一块取得先机,也不失为一个 「 捷径 」 。
所以,你问我算法和数据结构有什么用?我可以很明确的说,和你的年薪息息相关。当然,面试中 「算法与数据结构」 知识的考察只是面试内容的一部分。其它还有很多面试要考察的内容,当然不是本文主要核心内容,这里就不做展开了。试读内容如下:
本专栏适宜对算法没有什么概念,但是对某一门语言有一些简单基础的同学,如果语言基础较为薄弱,建议先选择一门语言学习一段时间。当然,如果直接开始学算法,也不是不可以,只要坚持把该专栏的 100 讲 攻克完毕,基本上语言那关也可以过了。
五、算法进阶
1、「 画解数据结构 」
以动图的形式,更加生动形象的阐释每个数据结构的思想和实现。
线性表 和 树 的内容已经大致更新完毕,图相关的内容目前还未更新。已更新内容如下:
2、「 算法进阶50讲 」
3、「 LeetCode算法题集汇总 」
这一部分主要是给有大块时间,并且想自学成才的同学准备的,里面的题集也在不断完善整理中。
4、「 夜深人静写算法 」
这个专栏是我五年前写的,有一定难度,但是对于竞赛的同学是个不错的选择。
以下是几篇优质文章的试读:
六、「 三年之约 」
作者在此承诺!只要你不舍,我不弃,你我同心协力,以三年为期,引万人之势气,共筑未来美好三年!三年之后,算法刷满 1000 题,你我字节见,你不来,我不走!
七、配套赠送福利
语言入门:《光天化日学C语言》(示例代码)
语言训练:《C语言入门100例》试用版
数据结构:《画解数据结构》源码
算法入门:《算法入门》指引
算法进阶:《夜深人静写算法》算法模板
一文带你吃透java中的继承(代码片段)
继承继承的概念继承的格式定义父类的格式:(一个普通的类定义)publicclass父类名称 //...定义子类的格式:publicclass子类名称extends父类名称 //...举例配合理解:继承中成员变量的访问特点举例配合理解:区分子类方法中重名的三种变... 查看详情
一文带你吃透java中的接口(代码片段)
接口接口的概述和生活举例接口定义的基本格式如何定义一个接口的格式:publicinterface接口名称 //接口内容接口的抽象方法定义/*在任何版本的Java中,接口都能定义抽象方法。格式:publicabstract返回值类型方法名称(参数列表);注意... 查看详情
web前端一文带你吃透html(上篇)(代码片段)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化🍁开始前端之旅吧!一.HTML简介1.什么是HTML?2.HTML标签3.HTML元素4.HTML版本5.Web浏览器6.HTM... 查看详情
spring一文带你吃透aop面向切面编程技术(上篇)(代码片段)
个人主页:几分醉意的CSDN博客_传送门文章目录💖AOP概念✨AOP作用✨AOP术语✨什么时候需要用AOP💖Aspectj框架介绍✨Aspectj的5个通知注解✨Aspectj切入点表达式✨前置通知@Before💖投票传送门(欢迎伙伴们投票... 查看详情
java泛型是什么?一文带你吃透泛型(代码片段)
文章目录1.Java泛型2.泛型类3.泛型接口4.泛型方法5.泛型集合Java编程基础教程系列1.Java泛型Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递。其主要的形式有泛型类,泛型接口和泛型方法。泛型概... 查看详情
一文带你吃透操作系统(代码片段)
文章目录1.进程、线程管理2.内存管理3.进程调度算法4.磁盘调度算法5.页面置换算法6.网络系统7.锁8.操作系统知识点文章字数大约1.9万字,阅读大概需要65分钟,建议收藏后慢慢阅读!!!1.进程、线程管理进程... 查看详情
一文带你吃透js处理树状结构数据的增删改查(代码片段)
目录问题描述:JS处理树状结构的增删改查解决方案:1、新增节点2、删除节点3、修改节点4、查找节点问题描述:JS处理树状结构的增删改查 最近在开发一个后台管理系统的权限管理模块,涉及到各种... 查看详情
一文带你吃透数据库的约束,不做crud程序员(代码片段)
在SQL标准中,一共规定了6种不同的约束,包括非空约束,唯一约束和检查约束等,而在MySQL中是不支持检查约束的,所以这篇文章先对其余5种约束做一个详解和练习。文章目录1.约束的概念2.约束的分类3.非空... 查看详情
kubernetes系列一文带你吃透k8s应用pod结点(代码片段)
作者:半身风雪上一节:创建K8s集群项目简介:上一节我们一起学习了,如何去部署一个K8S的应用程序,这一节,我们主要讲解一下,K8S应用的框架结构。K8S应用pod结点目标一、KubernetesPods1.1、Kubernetes... 查看详情
带你彻底吃透·算法复杂度(代码片段)
🌕写在前面Hello🤗大家好啊,我是kikokingzz,名字太长不好记,大家可以叫我kiko哦~从今天开始,我将正式开启一个新的打卡专题——【数据结构·水滴计划】,没错!这是今年上半年的一整个... 查看详情
mysql高级篇如何创建数据库?一文带你吃透数据库和表的操作之ddl(代码片段)
前一篇文章是数据库系统的基础概念和MySQL的入门篇,SQL是一种操作关系型数据库的结构化查询语言。总的来说,SQL分为四大类,分别是数据定义语言DDL,数据操作语言DML,数据查询语言DQL和数据控制语言DCL。... 查看详情
mysql高级篇到底如何增删改数据库中的数据?一文带你吃透数据的操作之dml(代码片段)
前面说到,SQL分为四类,这篇文章将详细的讲解对数据的一些操作,主要涉及到数据的增删改查。推荐学习专栏:Java编程进阶之路文章目录1.添加数据2.修改数据3.删除数据现在,我们已经基本学会了写SQL来操... 查看详情
web前端一文带你吃透css(中篇)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化继续学习CSS吧!一.CSS盒子模型(BoxModel)1.CSS盒子模型2.元素的宽度和高度二.CSS边框(Border)1.边框样式 查看详情
web前端一文带你吃透html(下篇)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化一起学习HTML下篇吧!一.HTML区块1.HTML区块元素2.HTML内联元素3.HTML的div元素4.HTML的span元素 查看详情
web前端一文带你吃透css(完结篇)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化文章目录一.CSS布局-对齐1.水平对齐1.1元素居中对齐1.2文本居中对齐1.3图片居中对齐1.4使用定位方式实现左右... 查看详情
spring一文带你吃透aop面向切面编程技术(下篇)(代码片段)
个人主页:几分醉意的CSDN博客_传送门上节我们介绍了什么是AOP、Aspectj框架的前置通知@Before传送门,这篇文章将继续详解Aspectj框架的其它注解。文章目录💖Aspectj框架介绍✨JoinPoint通知方法的参数✨后置通知@Af... 查看详情
安全算法一文带你简要了解常见常用的安全算法(代码片段)
本文由RT-Thread论坛用户recan原创发布:https://club.rt-thread.org/ask/article/3108.html0前言笔者有多年从事金融POS机系统开发的经验,对数据的安全理解较深,期间对各式各样的安全算法也是经常打交道,现整理一些基本概... 查看详情
进程线程与协程傻傻分不清?一文带你吃透!
前言欢迎来到操作系统系列,依然采用图解+大白话的形式来讲解,让小白也能看懂,帮助大家快速科普入门本篇开始介绍进程、线程、协程,相信很多小白们对这几个概念理解的不清晰,这里全部给你们安排的明明白白,我们... 查看详情