目录 | 数据结构与剑指Offer系列推文合集

【目录合集】| 作者 / Edison Zhou

C#刷数据结构+剑指Offer


不知不觉,C#刷剑指Offer的系列推文就结束了,今天就把它们整理成目录合集。此外,考虑到剑指Offer和数据结构的关联,建议没有数据结构基础的童鞋先看看数据结构,再来看剑指Offer,这样效果会比较好。

1数据结构

虽然我们现在使用的各种高级编程语言例如C#,Java等,它们已经为我们实现好了各种数据结构如队列、栈等,但是学习如何从0到1实现这些数据结构却是对开发者的技术理解和实践大有裨益的。因此,我写了一个每天5分钟碎片时间温习数据结构的系列文章,全都都用C#实现的,欢迎阅读。

线性表

(1)线性表基础

(2)顺序表

(3)单链表 Part 1

(4)单链表 Part 2

(5)双链表 Part 1

(6)双链表 Part 2

(7)循环链表 Part 1

(8)循环链表 Part 2

(9)约瑟夫问题

栈和队列

(1)栈 Part 1

(2)栈 Part 2

(3)队列 Part 1

(4)队列 Part 2

(5)队列 Part 3

二叉树

(1)二叉树 Part 1

(2)二叉树 Part 2

(3)二叉树 Part 3

(4)二叉树 Part 4

(5)二叉树 Part 5

(1)图 Part 1

(2)图 Part 2

(3)图 Part 3

(4)图 Part 4

(5)图 Part 5

(6)图 Part 6

(7)图 Part 7

(8)图 Part 8

(9)图 Part 9

(10)图 Part 10

查找

(1)查找 Part 1

(2)查找 Part 2

(3)查找 Part 3

(4)查找 Part 4

(5)查找 Part 5

排序

(1)插入类排序

(2)交换类排序

(3)选择类排序

(4)归并类排序

2剑指Offer

学习了数据结构之后,即使我们用最熟悉的开发语言实现了各种数据结构,但仍然会觉得好像不知道在什么时候该用什么数据结构会更有效。此外,现在各大IT公司招聘开发工程师的时候都将数据结构和算法的题目作为了第一轮面试的首选,而《剑指Offer》一书中几十道经典的题目是出镜率最高的。因此,我精选了《剑指Offer》一书中的33道题目,使用了C#实现了这些题目并写了单元测试,欢迎阅读。

(1)二维数组的查找

(2)替换空格

(3)从头到尾打印链表

(4)用两个栈实现队列

(5)重建二叉树

(6)旋转数组的最小数字

(7)斐波那契数列

(8)二进制中1的个数

(9)数值的整数次方

(10)打印1到最大的N位数

(11)在O(1)时间删除链表节点

(12)调整数组顺序使得奇数位于偶数前面

(13)链表的倒数第K个数

(14)反转一个链表

(15)合并两个排序的链表

(16)二叉树的子结构

(17)二叉树的镜像

(18)包含Min函数的栈

(19)栈的压入与弹出序列

(20)从上到下打印二叉树

(21)二叉搜索树的后序遍历序列

(22)二叉树中和为某一值的路径

(23)复杂链表的复制

(24)字符串的排列

(25)最小的K个数

(26)连续子数组的最大和

(27)丑数

(28)第一次只出现一次的字符

(29)两个链表的第一个公共节点

(30)数字在排序数组中出现的次数

(31)二叉树的深度相关题目

(32)字符串的操作相关题目

(33)将字符串转换为数字

3小结

到此为止,针对初级开发者的基础知识系列部分推文就结束了,有了数据结构和算法题目的知识储备,可以帮助你写出较为高效的代码。但如果要进阶到中级开发者,那就还得学会写出较为高质量的代码,这个就需要软件设计的相关知识了,包括设计思想、设计原则以及设计模式(我曾经学习设计模式也总结了一个系列的文章,传送门:设计模式系列文章),这些不是一朝一夕或者短时间内就能正确理解和掌握的。有关技术人的成长,我也建议是一步一脚印,因为在这个架构师课程随手可得的时代,大家都比较浮躁,追求短平快的快餐而忽视了平稳的过渡(我也录制了一个关于技术人成长之路的视频,可以在本文下方找到和观看)。刚好,近期我也在温习敏捷开发、软件设计、后端技术、架构设计、技术管理等方面的相关知识,它们和具体的开发语言的耦合度并没有那么的高,属于我在《技术人的持续成长之路》一文中所提到的“可平滑迁移和复用的知识和技能”,后面我也计划总结一些我的学习总结系列文章分享给大家,欢迎大家持续关注!

最后,如果我的推文对大家有一点点帮助,欢迎大家给我点个“在看”,谢谢!

???? C#刷数据结构源码:https://github.com/EdisonChou/DataStructure.Samples.CSharp

???? C#刷剑指Offer源码:

https://github.com/EdisonChou/EDC.PointToOffer.Samples.CSharp

???? 技术人的持续成长之路-视频

视频配套文字稿:点击这里阅读

- END -


如果本文有用,请点击“在看”或转发朋友圈

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

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

相关文章

Abp vNext异常处理的缺陷/改造方案

之前吐槽Abp的用户/租户管理模块!今天我又来了,这次我给Abp官方repo提了一个issue。目前Website使用Abp vNext开发,免不了要全局处理异常、提示服务器异常信息。1. Abp官方异常处理Abp项目默认会启动内置的异常处理,默认不将异常信…

开源项目葫芦藤:IdentityServer4的实现及其运用

前言本篇文章主要是讲解葫芦藤项目中对IdentityServer的实践使用,为了使您对本篇文章中所讲述的内容有深刻的认识,并且在阅读时避免感到乏味,文中的内容不会涉及太多的基础理论知识,而更多的是采用动手实践的方式进行讲解&#xf…

java io 读取多个对象_Java IO系列(五):读写对象ObjectOutputStream和ObjectInputStream详解...

有必要多看几遍的关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。读写对象,传输对象在Java中很常使用,在javaBean中就经…

Beetlex之websocket/tls服务压测工具

为了方便压力测试ws服务,Beetlex同样提供相关工具来对ws/wss服务的性能进行测试测试。安装可以访问https://github.com/beetlex-io/TCPBenchmarks 下载最新版本工作,工具可以运行在linux和windows系统,安装完成后通过浏览器访问相关服务进行操…

大学班里80%都去培训班,为什么我没去

背景大四刚开始,各大培训机构就开始到各大高校开始宣传,我们学校也不例外;当时信息与计算科学这专业在我们学校并不景气,有好几次听说:如果我们那届的就职率还不行的话,那很大可能将此专业拿掉;…

如何在 C# 中使用 Buffer

缓冲区 是内存中的一组字节序列,缓冲 是用来处理落在内存中的数据,.NET 缓冲 指的是处理 非托管内存 中的数据,用 byte[] 来表示。当你想把数据写入到内存或者你想处理非托管内存中的数据,可以使用 .NET 提供的 System.Buffer类&a…

.NET SDK-Style 项目(Core、Standard、.NET5)中的版本号

.NET SDK-Style 项目(Core、Standard、.NET5)中的版本号独立观察员 2020 年 12 月 24 日之前 .NET Framework 时,项目版本号等信息是存储在 AssemblyInfo.cs 文件中,通过程序集特性进行设置:.NET Core 之后&#xff0c…

[Stardust]星尘分布式全链路监控

随着业务的发展,微服务系统会变得越来越大,各个服务之间的调用关系也会日趋复杂。一个WebApi请求,后方可能经历多个微服务以及数据库和MQ操作,在这个调用过程中,可能因为某一个服务节点出现延迟或者失败,而…

如何在 C# 中使用 const,readonly,static

平时在开发时经常会用到 const,readonly,static 关键字,可以肯定这些关键词是完全不同的概念,但有时候他们在用法上很相似以至于在场景中不知道选择哪一个,这篇文章我们就来讨论 C# 中的 const,static 和 readonly 关键词&#xf…

2020,你收获了什么?又失去了什么?

这是头哥侃码的第228篇原创今天是圣诞节,既魔幻又真实的2020年,还有6天就要结束了。每年的年末,我都习惯在下班途中,把头靠在地铁车厢两侧的扶手上,闭上眼睛开始思考自己过去一年的收获与得失,并把这些思绪…

2019龙少php泛站群,龙少php泛站群|PHP版站群 全自动泛解析站群程序 赠送教程

首先将准备建站的域名设置泛解析如baidu.com泛解析为 添加A记录为 *.baidu.com然后在iis里添加空头主机不能设置 汉字目录keywords.txt 关键字,一行一个domain.txt 域名,一行一个,*代表随机muban.html 模板文件,可以修改缓存在dat…

轻量级消息队列RedisQueue

消息队列(Message Queue)是分布式系统必不可少的中间件,大部分消息队列产品(如RocketMQ/RabbitMQ/Kafka等)要求团队有比较强的技术实力,不适用于中小团队,并且对.NET技术的支持力度不够。而Redi…

生态和能力是国内自研操作系统发展的关键

“缺芯少魂”一直是我国信息产业短板,如果无法实现国产化替代,信息安全和产业安全就犹如沙滩上盖房子,上层再坚固,地基不稳,一遇到风吹草动就有可能全部垮掉。近年来,国内自研操作系统厂商动作频频&#xf…

matlab群延时函数,群延迟函数(group delay function)群延迟滤波器 | 学步园

最近看了许多介绍Group delay function的论文,文章中大篇幅提到Group delay,group delay of digital filters,对这个方面的知识好像还挺有用的,所以想把它记录下来。然后总结下计算Group delay function的步骤。假设有N个样本的脉冲响应为h(n…

怎样使用C# 获取WIFI的连接状态?

怎样使用C# 获取WIFI的连接状态?行文导航思路问题得到解决代码展示断开与连接WIFI状态效果在OrangePI Linux Arm32上的测试效果C# 获取WIFI的连接状态本文是在知道WIFI网络设备名称的情况下,获取该设备的连接状态,同样也是可以判断是否已连接…

如何在 ASP.NET Core 中使用 URL Rewriting 中间件

URL rewriting 是根据预先配置好的一组规则去修改 request url,值得注意的是:URL Rewriting 的重写功能和 url 重定向 是两个概念,本篇我们就来讨论下如何在 ASP.NET Core 中对 url 进行 rewriting。安装 URL Rewriting 中间件 要想使用 URL …

睡眠分期matlab代码,非接触式睡眠分期方法与流程

本发明属于雷达监测技术领域,特别是一种非接触式睡眠分期方法。背景技术:传统的呼吸睡眠监护系统主要依靠贴附于人体的接触式传感器、电极进行测量,从而实时获得人体的生命参数信号,这些方法都需要直接或间接地接触人体&#xff0…

叮咚!你有一份来自明源云的圣诞邀约

请查收,来自明源云的圣诞邀约~

java先进先出 循环队列,JavaScript队列、优先队列与循环队列

队列是一种遵从先进先出(FIFO)原则的有序集合队列在尾部添加新元素,从顶部移除元素队列的理解队列在我们生活中最常见的场景就是排队了队列这个名字也已经很通俗易懂了和栈很像,这不过队列是先入先出的数据结构队列的前面是队头队列的后面是队尾出队从队…

Abp小试牛刀之 图片上传

图片上传是很常见的功能,里面有些固定的操作也可以沉淀下来。本文记录使用Abp vNext做图片上传的姿势。目标上传图片----->预览图片----->确定保存支持集群部署实现思路:1. 上传图片要使用WebAPI特定媒体类型:multipart/form-data;2. 因…