自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jungle是一个用Qt的工业Robot

你清澈又神秘,在贝加尔湖畔

原创 每天都刷朋友圈,那你知道并查集吗?
原力计划

微信大概是我们每天必须接触的一个APP之一,公交上、地铁上,异或工作休息时,我们都忍不住刷刷朋友圈,看看一些点赞之交的朋友当天又经历了什么。相较于QQ,微信的一个特点之一就是:除非好友的好友也是你的好友,否则你在朋友圈里看不到好友的好友对好友朋友圈的点赞和评论。 今天刷LeetCode,发现了一...

2020-05-04 00:01:09 167 2

原创 Windows驱动开发环境搭建:VS2013+WDK8.1

尽管网上已经有很多帖子在介绍如何搭建Windows驱动开发环境,Jungle照着这些帖子仍旧折腾了很长时间。在终于搭建成功后记录下环境搭建过程,方便大家使用。 1.安装包准备 Visio Studio2013:https://pan.baidu.com/s/1P77yeSKuE7mWllcp...

2020-03-15 19:12:21 160 0

原创 资深同事教我做人:堆上分配的内存,只free就完事儿了?

malloc要和free成对使用,malloc的内存,free就完事儿了吗? 最近的工作是和另一位资深同事一起,修复组里新老项目上可能存在的一些安全漏洞,包括参数检查和内存释放。参数检查倒还ok,在每个函数开始出对入口参数判空。这一点老代码做得很好,所以这部分工作量很小。关键是内存的释放。 ...

2020-03-15 10:48:25 159 0

原创 [LeetCode]区间型动态规划题目解析

动态规划适用于有重叠子问题和最优子结构性质的问题。给定一个问题,如果可以将其划分为子问题,并解出其子问题,再根据子问题的解推导/递推以得出原问题的解。LeetCode上关于动态规划的题目众多,除了前述文章的最小路径、股票买卖等问题,区间型动态规划也是一类经典题目。本节将分析LeetCode上两道区...

2020-02-23 11:10:22 344 0

原创 Qt实现设备管理器——枚举系统所有设备
原力计划

本文Jungle将用vs2013+Qt5.6.0来实现设备管理器。什么是设备管理器?使用过Windows系统的人应该不陌生,它用来管理计算机上的设备。可以使用“设备管理器”查看和更改设备属性、更新设备驱动、配置设备和卸载设备,如下图: 外观上来说,设备管理器提供计算机上所安装硬件的图形视图。...

2020-02-21 22:13:11 576 0

原创 赶快拿走!你期待的USB2.0协议中文版出炉啦!

得到

2020-02-15 20:03:09 1902 0

原创 [LeetCode]动态规划求解博弈问题

博弈论是有趣又有用的知识,可以用来预测在特定的规则下,人们会做出怎样的行为,又会导致怎样的结果。利用博弈论来指导人们的行事法则甚至商业操作,比如著名的囚徒困境就被很好的利用在了商业竞争上。同样,LeetCode也利用博弈论出了几道有意思的题目。 如何解这些博弈类的算法题目呢?如果透过题目表面,理...

2020-02-08 12:08:47 629 0

原创 Git学习资料整理及常见问题总结

回顾Jungle写硕士论文时,虽不至于“披阅十载,增删五次”,但也费心思修改了很多次。每修改一次都得把之前的复制备份保存,下图是部分修改版本的截图。如果修改20次,那么本地计算机里就得保存20个版本的论文!不但占据本地空间,而且要查找某一次修改点时及其不方便。软件代码也是一样,如何管理日渐庞大的软...

2020-02-03 17:15:39 457 0

原创 [LeetCode]动态规划,一招团灭最小路径问题

动态规划是求解“最小路径”的常用方法之一,LeetCode上关于“最小路径”的题目如下: 64.最小路径和:https://leetcode-cn.com/problems/minimum-path-sum/ 120.三角形最小路径和:https://leetcode-cn.com/probl...

2020-01-18 22:47:03 359 0

原创 [LeetCode]动态规划,一举歼灭“股票买卖的最佳时机“问题!

LeetCode上关于股票买卖的最佳时机一共有6到题目: 在[LeetCode]买卖股票的最佳时机ⅠⅡ中,Jungle采用波峰波谷法解决了两道简单题。那么剩余4到题目该如何求解呢? 其实对比6到题目,题目要求都大同小异,具体差别在于限制股票交易次数k LeetCode买卖股票的最佳时机题...

2020-01-12 10:36:20 368 0

原创 [LeetCode]买卖股票的最佳时机ⅠⅡ

2020年元旦后,股市小涨了一波,Jungle趁此机会,开始思考LeetCode上的股票买卖时机的问题。 LeetCode上,关于股票时机买卖一共有6道题目: 其中,简单题、中等题、困难题各三道。 121. 买卖股票的最佳时机 https://leetcode-cn.com/probl...

2020-01-07 22:59:07 301 0

原创 [LeetCode]动态规划之打家劫舍ⅠⅡⅢ

在文章[LeetCode]动态规划及LeetCode题解分析中,Jungle介绍到求解动态规划类问题,一般分为三个步骤: 明确数组元素代表的含义 寻找递推关系,务必考虑特殊情况下的递推关系 数组初始化 当然,很多文章里把数组每个元素叫做一种“状态”,把相邻数组元素之间的递推关系叫做“状态转移...

2020-01-04 11:21:12 285 0

原创 [LeetCode]动态规划LeetCode[简单]题全解

在文章[LeetCode]动态规划及LeetCode题解分析中,Jungle介绍到求解动态规划类问题,一般分为三个步骤,这里做个简单回顾: 动态规划是利用子问题的解推导出原问题的解,即用之前问题的解推导出之后问题的解,即利用已有的解(历史保存的解)来解未知的问题。我们一般使用数组(有一维的,更常...

2020-01-01 21:24:47 401 1

原创 [LeetCode]动态规划及LeetCode题解分析

动态规划(DP,Dynamic programming)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。给定一个问题,如果可以将其划分为子问题,并解出其子问题,再根据子问题的解推导/递推...

2019-12-29 21:06:25 343 2

原创 Windows网络编程:Winsock实现UDP通信

在文章Windows网络编程:一文深入理解Winsock里Jungle详细介绍了Winsock的头文件、面向连接的通信(TCP/IP)和无连接的通信(UDP/IP),Windows网络编程:Winsock实现客户端与服务器文件传输(TCP/IP)中Jungle基于Winsock实现了面向连接的通信...

2019-12-14 11:49:24 428 0

原创 Windows网络编程:一文深入理解Winsock

Winsock是一种标准API,主要用于网络中的数据通信,允许两个或者多个应用程序(或进程)在同一机器上或通过网络相互通信。使用Winsock API,应用程序可以通过TCP/IP或UDP协议建立网络通信。 Winsock API包括Winsock1和Winsock2版本,Winsock2版本的...

2019-12-13 08:41:21 360 0

原创 BIOS基本概念

1.BIOS基本概念 BIOS(Basic Input/Outut System),基本输入输出系统,保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。BIOS固化在只读存储器(ROM)中,为电脑提供最低级、最直接的硬件控制的程序,是连通软件程序和硬件设备之间...

2019-12-02 10:05:59 400 0

原创 计算机网络——域名系统

在命令行里敲入ping www.baidu.com,下面的提示会显示39.156.66.14这个IP地址(显然,这是一个A类地址)。同样,输入ping www.google.com,同样会显示一个IP地址。这是什么意思呢? 再做一个小测试,在C:\Windows\System32\drivers...

2019-11-24 10:50:17 287 0

原创 计算机网络——TCP的三次握手和四次挥手

TCP是面向连接的协议(计算机网络——运输层),每一个运输连接包括连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常进行。TCP连接采用的是CS模式,主动发起的连接的应用进程叫客户(Client),被动等待连接的应用进程叫服务器(Server)。在TCP连接建立过程中需...

2019-11-23 11:02:53 252 0

原创 计算机网络——运输层

一、运输层概述 运输层向上面的应用层提供通信服务,是面向通信部分的最高层,也是用户功能中的最底层。“两个主机之间的通信”这种说法并不准确,因为真正进行通信的实体是在主机中的进程。一个主机中可能有多个进程与另一个主机中的多个应用进程通信。所以,从运输层的角度来看,通信的真正端点并不是主机,而是主机...

2019-11-22 22:15:18 249 0

原创 计算机网络——物理层

在计算机网络体系中个,物理层考虑的是如何连接(各种计算机的传输媒体上传输的)比特流。所以,双绞线、同轴电缆等具体的传输媒介,并不是物理层的含义。计算机网络中的硬件设备和传输媒体的种类繁多,通信手段方式各异,物理层的作用,是要屏蔽掉上述差异,使物理层上面的数据链路层感觉不到这种差异(数据链路层只需考...

2019-11-19 22:48:23 235 0

原创 C++设计实现日志系统

日志系统几乎是每一个实际的软件项目从开发、测试到交付,再到后期的维护过程中极为重要的查看软件代码运行流程、还原错误现场、记录运行错误位置及上下文等的重要依据。一个高性能的日志系统,能够准确记录重要的变量信息,同时又没有冗余的打印导致日志文件记录无效的数据。本文Jungle将用C++设计实现一个日志...

2019-11-17 11:06:58 629 1

原创 C++设计模式系列文章汇总

Jungle整理的C++设计模式系列文章出炉了,每一种设计模式都包含: 理论知识:每一种模式的定义、解释 模式UML结构和角色分析:UML类图说明模式的角色和结构 模式应用实例:将设计模式应用于具体的例子,并给出UML实例类图 完整的源代码:完整的代码和运行结果示意图,源代码资源及UML图...

2019-11-12 22:12:35 1182 1

原创 访问者模式,从双十一购物开始说起

欧耶!这周Jungle的作业终于做完了!作业是什么呢?就是完成一个习题册。Jungle做完之后,得让家长检查习题册并签字;第二天交到学校,组长得初步检查作业是否做完、家长是否签字,然后老师会评阅作业是否正确,并给出评分。 就是这么一个习题册,这是经了多少人的手啊! Jungle——...

2019-11-10 22:57:49 296 0

原创 不知不觉就在使用的一种设计模式——模板方法模式

类的继承你一定用过,派生类覆写基类的方法你也一定用过,只是你可能不知道,这就是传说中的一种设计模式…… 1.模板方法模式简介 模板方法模式是较简单且常用的一种设计模式,是基于类的继承的一种代码复用技术,其结构只存在基类和派生类之间的继承关系。模板方法是一个具体的方法,给出了一个顶层逻辑流...

2019-11-10 10:48:34 774 6

原创 如何管理和维护算法族?只需知道策略模式

同样是排序算法,你可以选择冒泡排序、选择排序、插入排序、快速排序等等,也即是说,为了实现排序这一个目的,有很多种算法可以选择。这些不同的排序算法构成了一个算法族,你可以在需要的时候,根据需求或者条件限制(内存、复杂度等)适时选择具体的算法。 在面向对象的设计里,该如何设计这样一个算法族呢?它包...

2019-11-09 21:23:22 780 0

原创 状态模式——从斗地主开始说起

“人有悲欢离合,月有阴晴圆缺”。很多事物在特定条件下转换成不同的状态,在不同状态下表现出不同的行为。 在软件系统中,有些对象在不同的条件下也具有不同的状态,不同状态之间可以相互转换。通过判断不同的条件分支(if...else...或者switch..case...)可以进行状态的转换。但这...

2019-11-09 10:40:05 831 0

原创 “牵一发而动全身”——我用观察者模式简单模拟吃鸡

每当Jungle公众号【Jungle笔记】更新发布了文章,作为Jungle的关注者,你会第一时间接到消息,(如果)然后就可以去查看、点赞、评论和转发,接下来的一天你都高高兴兴; 每当Jungle更新了CSDN博客,作为Jungle的支持者,你也会在打开CSDN网站的时候看到消息,(如果)然后你就...

2019-11-06 21:35:22 1136 3

原创 我用备忘录模式设计了简易的版本控制系统

“Ctrl+Z”是什么操作?各位都用过,并且经常使用吧?撤销!撤销上一个操作返回上一个状态,甚至撤销好几个操作,返回到几个操作之前的状态。这个操作非常有用,一旦我们某一步操作失误,可以选择撤销操作来返回原来的无错状态。 那么系统怎么知道每一步的状态呢?它一定保存了一定数量的历史状态!就像Git版...

2019-11-05 22:45:58 5526 0

原创 中介者模式,说一说贝壳找房

离开学校参加工作之前,你一定是有一段时间是在找租,Jungle也是如此。 Jungle为了找到合适的房子,沿着地铁线一个小区一个小区的去问门卫问保安,或者照着小区门口展板上的房东的联系方式去找房东……此事已经过去大半年了,但Jungle现在想来还是觉得很麻烦!麻烦在哪里?得亲自走亲自联系各个房东...

2019-11-04 07:45:26 776 0

原创 迭代器模式,给你更高大上的遍历体验!

写代码不少使用数组或者类似的集合对象吧?每次要遍历一遍数组怎么办?For 循环!或者while循环,一个一个访问每个位置的元素,直到数组末尾。STL里面甚至有专门的迭代器,针对具体的集合类对象,有对应使用的迭代器。STL的迭代器提供了丰富的遍历方法,如访问集合对象的首位元素、末位元素、指定位置的元...

2019-11-03 14:16:14 926 0

原创 读懂老板的暗语,你需要知道解释器模式!

看过《大明王朝1566》吗?这是Jungle所看过的历史剧当中最最喜欢和推崇的一部剧。看过这部剧的小伙伴们都知道,嘉靖皇帝说话从来不会明明白白说出来,而是喜欢绕着说,或者说暗语,若不细细揣测,根本不知道嘉靖说的真实含义是什么。比如他跟陈洪说“行到水穷处,坐看云起时”,陈洪就意会到皇上是让他除草;太...

2019-11-02 22:30:50 686 0

原创 作为程序员的你,必须要知道命令模式!

还记得Jungle曾经设计的Qt图片浏览器吗?鼠标点击“上一张”,浏览上一张图片;点击“下一张”,浏览下一张图片;点击“自动播放”,则自动从上到下播放每一张图片。是不是很有趣的一个小程序? 鼠标点击某个键,就好像用户在向图片浏览器发送指令,图片浏览器内部接收到指令后开始调用相应的函数,最终结果...

2019-10-30 08:15:11 1020 1

原创 “欲戴王冠,必承其重”——深度解析职责链模式

应项目需求,公司安排Jungle去成都出差一段时间。这不,Jungle刚结束出差生活,回到公司准备报销。算了一下,Jungle一共有大概50万的一笔小额票据需要报销。按照公司规定,Jungle得先去找自己的组长签字。 组长一看,“啧啧啧,我只能处理10万金额以下的报销,你这单子我签个字,你还得找...

2019-10-29 08:28:46 773 1

原创 双十一天猫购物找代理?先学会代理模式

“代理”这个词不陌生吧?买化妆品、买奶粉、买包包,都可以通过代理代购,甚至有专门的代购网站; 或者要购置一些自己不太清楚原理好坏的物品,可以找相关代理负责帮忙购买,当然了,得支付一定费用。 在软件设计模式中,也有一种模式可以提供与代购网站类似的功能。当客户端不能或者不便直接访问一个对象时,可...

2019-10-28 08:09:36 982 3

原创 细粒度对象的大面积复用!——实例分析享元模式

知道围棋吗?不会下围棋那总见过吧?四四方方的棋盘上,白色棋子和黑色棋子分布在棋盘的各个位置上。 棋子与棋子之间的区别是什么?除了颜色和位置,好像没什么不同了吧!也就是说,每个棋子对象的大部分状态都是一样的(形状、材料、质地等)。如果我们要设计一个程序来实现下围棋的功能,该如何来创建或者表示这上百...

2019-10-27 15:56:32 812 2

原创 如何吃到回锅肉?找厨师啊——外观模式实例解析

好不容易盼到周末啦!Jungle想吃点好的犒劳自己!吃什么呢?回锅肉!是的,吃回锅肉! 可是这过程好麻烦啊,先得去市场里买肉,买回来得洗好,然后切好,再炒肉,最后才能吃上!不仅过程繁杂,而且Jungle还得跟市场、厨房打交道,想想都头大。 如果有个厨师就好了,Jungle直接告诉厨师“我要吃回...

2019-10-26 15:42:35 850 1

原创 人靠衣装,美靠靓装——装饰模式,教你成为最靓的仔!

成都的气温说降就降啊!还没立冬呢,温度骤然下降,只有10度了。扛不住了,Jungle要穿一件毛衣! 额,出门还是很冷!那再带个围巾! 天,上半身不冷了,下半身还那么冷~~~穿上秋裤! 出门前想了想,这种天气骑摩拜单车一定吹着手冷,于是Jungle又带上了手套…… 看到了吗,天冷了,Jung...

2019-10-25 00:00:06 1016 4

原创 逆袭成为主管和高级经理!——组合模式

今天Jungle又是被压榨的一天: 同事让帮忙做个测试,一测就是一上午;主管叫去开会,尽管他是三级主管,但也是Jungle的主管呀!更磨人的在后头: Jungle由于项目需要,要申请某个IT权限,需要三级主管、二级主管、成都区总经理层层批复…… 这公司哟,简直就像一棵树,Jungle只是一片...

2019-10-24 08:31:34 2115 2

原创 号称最难理解的设计模式,只需看这篇解析——桥接模式

Jungle有两个手机,分别是M手机和N手机,M手机上有游戏Game1,N手机上有Game2。每次Jungle想玩Game1时,就使用M手机,想玩Game2时,就玩N手机。要是某天Jungle外出,心情大好,两个游戏都想玩,那Jungle还得带上两个手机???麻不麻烦? 如果新出一个游戏Game...

2019-10-23 22:17:41 1147 1

提示
确定要删除当前文章?
取消 删除