<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ShenDW818的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ShenDW818</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ShenDW818]]></copyright><item><title><![CDATA[【Linux 采坑记】处理kswapd0进程CPU占有率过高问题]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117817442</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117817442</guid><author>ShenDW818</author><pubDate>Fri, 11 Jun 2021 15:12:56 +0800</pubDate><description><![CDATA[还记得前几天，也是kswapd0占CPU太高了，就直接kill了，然后重启，结果出问题了，具体见【Linux 踩坑记】Ubuntu开机进入emergency mode。然后当时就去查了一下kswapd0进程是个啥东西，得到的解释就是：

kswapd0进程是虚拟内存管理中，负责换页的。操作系统每过一段时间就会唤醒kswapd，看看内存是否紧张，如果不紧张，则睡眠。在kswapd中，有2个阈值，pages_hige和pages_low，当空闲页的数量低于pages_low的时候，kswapd进程就会扫描内存并]]></description><category></category></item><item><title><![CDATA[二叉树的迭代遍历]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117772308</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117772308</guid><author>ShenDW818</author><pubDate>Thu, 10 Jun 2021 11:08:55 +0800</pubDate><description><![CDATA[以前遍历二叉树都是用递归进行遍历，导致要用迭代遍历的时候总是要想很久，特在此对二叉树的迭代遍历进行记录。
前序遍历
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     Tree]]></description><category></category></item><item><title><![CDATA[【Linux 踩坑记】Ubuntu开机进入emergency mode]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117693050</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117693050</guid><author>ShenDW818</author><pubDate>Tue, 08 Jun 2021 10:54:00 +0800</pubDate><description><![CDATA[缘由
Ubuntu的图形化界面太卡了。然后看到kswapd0进程占用大量的CPU，就把这个进程给kill了。结果还是卡，就直接reboot了，然后就进入emergency mode了。

解决方案
1、按Enter键进入终端；
2、输入journalctl -xb命令查看日志；
3、在日志中找到fask failed，找出错误行，然后可以在附近找到失败的设备名称：

4、umount /dev/disk/…/…
5、fask -y /dev/disk/…/…

6、重启：reboot，就正常了。
后记
下次]]></description><category></category></item><item><title><![CDATA[【Linux采坑记】Failed to initialize NVML: Driver/library version mismatch]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117602729</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117602729</guid><author>ShenDW818</author><pubDate>Sat, 05 Jun 2021 18:31:29 +0800</pubDate><description><![CDATA[问题描述
输入

nvidia-smi

报错：

Failed to initialize NVML: Driver/library version mismatch

尝试办法：卸载电脑驱动，重装系统驱动版本。
根据报错信息，是NVIDIA的内核驱动版本与系统驱动版本不一致。（昨天都还行，估计就是自动更新了）
然后，仿照Ubuntu中Failed to initialize NVML: Driver/library version mismatch问题的解决进行处理。即卸载电脑驱动，重装系统驱动版本。
]]></description><category></category></item><item><title><![CDATA[LeetCode 连续数组]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117589489</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117589489</guid><author>ShenDW818</author><pubDate>Sat, 05 Jun 2021 11:20:51 +0800</pubDate><description><![CDATA[题目
给定一个二进制数组numsnumsnums，找到含有相同数量的0和1的最长连续子数组，并返回该子数组的长度。
示例：

输入：nums = [0,1,0]
输出：2
说明：[0,1]（或[1,0]）是具有相同数量0和1的最长连续子数组。

方法：前缀和+哈希表
由于“0和1数量相同”等价于“1的数量减去0的数量等于0”，可以将数组中的0视作-1，则原问题转换成“求最长的连续子数组，其元素和为0”。
设数组numsnumsnums的长度为nnn，将数组numsnumsnums进行转换得到长度相等的新数组]]></description><category></category></item><item><title><![CDATA[连续的子数组和]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117462772</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117462772</guid><author>ShenDW818</author><pubDate>Wed, 02 Jun 2021 11:22:21 +0800</pubDate><description><![CDATA[题目
给定一个整数数组nums和一个整数k，编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组：

子数组大小至少为2，且
子数组元素总和为k的倍数。

如果存在，返回true；否则，返回false。
如果存在一个整数n，令整数n符合x=n∗kx=n*kx=n∗k，则称x是k的一个倍数。
前缀和 + 哈希表 + 同余定理
最直接的思路是遍历数组numsnumsnums中每个大小至少为2的子数组并计算每个子数组的元素和，判断是否存在一个子数组的元素和为kkk的倍数。当数组numsnumsnums的长]]></description><category></category></item><item><title><![CDATA[判断一个数是否为4的倍数]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117417200</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117417200</guid><author>ShenDW818</author><pubDate>Mon, 31 May 2021 15:54:13 +0800</pubDate><description><![CDATA[2的幂
如果一个数nnn是4的倍数（幂），那么，nnn一定也会是2的幂。所以，我们可以先判断nnn是否是2的幂，在此基础上再判断nnn是否为4的幂。
判断nnn是2的幂的方法见判断一个数是否为2的幂。常见的有两种：
n&amp;(n−1)==0 n\&amp;(n-1) == 0n&amp;(n−1)==0
和
n&amp;(−n)==n n \&amp; (-n) == nn&amp;(−n)==n
二进制
如果nnn是4的倍数那么nnn的二进制表示有且只有一个1，并且这个1出现在从低位开始的第奇数个二进]]></description><category></category></item><item><title><![CDATA[判断一个数是否为2的幂]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/117412224</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/117412224</guid><author>ShenDW818</author><pubDate>Mon, 31 May 2021 11:15:03 +0800</pubDate><description><![CDATA[描述
判断一个数是否是2的幂。
二进制处理
如果一个数nnn是2的幂，则nnn毕竟是正整数，而且nnn的二进制表示中有且仅有一个1。
因此，可以考虑使用位运算，将nnn的二进制表示中最低位的那个1提取出来，再判断剩下的数值是否为0即可。
这里介绍两种常见的处理二进制表示中最低位的方法。
n&amp;(−n)n \&amp; (-n)n&amp;(−n)
其中&amp;\&amp;&amp;表示按位与运算。已知n是正整数，则 −n-n−n 就是nnn的相反数，为负数。这个方法可以直接获取nnn二进制表示的最低]]></description><category></category></item><item><title><![CDATA[Halstead 复杂度简介]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/90315681</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/90315681</guid><author>ShenDW818</author><pubDate>Sat, 18 May 2019 15:11:48 +0800</pubDate><description><![CDATA[难度度量元 (Halstead 复杂度)

Halstead 复杂度 (Maurice H. Halstead, 1977) 是软件科学提出的第一个计算机软件的分析“定律”，用以确定计算机软件开发中的一些定量规律。

Halstead 复杂度采用一组基本的度量值，这些度量值通常在程序产生之后得出，或者在设计完成之后进行估算。


Halstead 复杂度根据程序中语句行的操作符和操作数的数量计算程...]]></description><category></category></item><item><title><![CDATA[系统分析与设计（6）]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/89811196</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/89811196</guid><author>ShenDW818</author><pubDate>Sat, 04 May 2019 14:11:13 +0800</pubDate><description><![CDATA[练习资源：Asg_RH.pdf
使用UMLet 建模
1、使用类图，分别对 Asg_RH 文档中 Make Reservation 用例以及 Payment 用例开展领域建模。然后，根据上述模型，给出建议的数据表以及主要字段，特别是主键和外键


注意事项：

对象必须是名词、特别是技术名词、报表、描述类的处理；
关联必须有多重性、部分有名词与导航方向
属性要注意计算字段



数据建模，为了简化...]]></description><category></category></item><item><title><![CDATA[系统分析与设计（5）]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/89791039</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/89791039</guid><author>ShenDW818</author><pubDate>Fri, 03 May 2019 20:27:41 +0800</pubDate><description><![CDATA[使用UMLet建模
1、根据定旅馆建模文档，Asg-RH.pdf:

绘制用例图模型（到子用例）

给出make reservation用例的活动图

2、根据课程练习“投递员使用投递箱给收件人快递包裹”的业务场景

分别用多泳道图建模三个场景的业务过程
根据上述流程，给出快递柜系统最终的用例图模型

用正常色彩表示第一个业务流程反映的用例
用绿色背景表述第二个业务场景添加或修改的用例，以及支持A...]]></description><category></category></item><item><title><![CDATA[系统分析与设计（4）]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/89098238</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/89098238</guid><author>ShenDW818</author><pubDate>Wed, 10 Apr 2019 15:12:31 +0800</pubDate><description><![CDATA[※ 简答题

用例的概念
用例和场景的关系？什么是主场景或 happy path？
用例有哪些形式？
对于复杂业务，为什么编制完整用例非常难？
什么是用例图？
用例图的基本符号与元素？
用例图的画法与步骤
用例图给利益相关人与开发者的价值有哪些？

※ 建模练习题（用例模型）


选择2-3个你熟悉的类似业务的在线服务系统（或移动APP），如定旅馆（携程、去哪儿等）、订电影票、背单词APP等，分别...]]></description><category></category></item><item><title><![CDATA[Bresenham’s algorithm( 布兰森汉姆算法)画直线]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/88669209</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/88669209</guid><author>ShenDW818</author><pubDate>Tue, 19 Mar 2019 19:22:22 +0800</pubDate><description><![CDATA[简介

1967年，IBM的J.Bresenham提出了Bresenham算法。
Bresenham算法是在一些约定条件下的最佳逼近。
Bresenham算法通过前一个像素点提供的信息来判定后一个像素点的位置。
DDA算法虽也可绘制直线，但该算法中存在类型转换以及除法运算，当需要画大量的直线时，速度慢。而Bresenham算法则只涉及加法和乘法，且乘法是乘2操作，相当于移位，减少了画直线所需的时间...]]></description><category></category></item><item><title><![CDATA[系统分析与设计（3）]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/88539525</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/88539525</guid><author>ShenDW818</author><pubDate>Sun, 17 Mar 2019 23:42:12 +0800</pubDate><description><![CDATA[简答题


简述瀑布模型、增量模型、螺旋模型（含原型方法）的优缺点

从项目特点、风险特征、人力资源利用角度思考



简述统一过程三大特点，与面向对象的方法有什么关系？


简述统一过程四个阶段的划分准则是什么？每个阶段关键的里程碑是什么？


软件企业为什么能按固定节奏生成、固定周期发布软件产品？它给企业项目管理带来哪些好处？



...]]></description><category></category></item><item><title><![CDATA[系统分析与设计（2）]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/88376685</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/88376685</guid><author>ShenDW818</author><pubDate>Tue, 12 Mar 2019 11:18:57 +0800</pubDate><description><![CDATA[※简答题
1、用简短的语言给出对分析、设计的理解。
分析：  分析强调对问题（项目）本身进行考虑，包括项目需求，是否可以执行，执行这个项目的意义在哪，执行时应该着重于哪一部分，等等。简而言之，分析即是找出应该做的事情（ do the right thing）。
设计： 设计强调的是找出解决方法。即在做一个项目时，找出一个可符合项目需求的实现该项目的逻辑上的方法。简而言之，设计就是把事情做正确（ d...]]></description><category></category></item><item><title><![CDATA[系统分析与设计（1）]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/88068301</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/88068301</guid><author>ShenDW818</author><pubDate>Sun, 03 Mar 2019 14:39:21 +0800</pubDate><description><![CDATA[软件工程的定义
&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;在IEEE标准中，软件工程的定义为：

Software engineering is “(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maint]]></description><category></category></item><item><title><![CDATA[直方图均衡化的实现]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/83450968</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/83450968</guid><author>ShenDW818</author><pubDate>Sat, 27 Oct 2018 23:16:37 +0800</pubDate><description><![CDATA[直方图均衡化的实现
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;直方图均衡是数字图像的一个基础算法，原理在这里我就不再多说的，如果还没弄懂直方图均衡原理的朋友，建议先去看懂原理，这里是传送门。
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;下面，先来看看用Matlab中的histeq方法处理的代码：
clc
clear
]]></description><category></category></item><item><title><![CDATA[Python圆形场景转换]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/83214830</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/83214830</guid><author>ShenDW818</author><pubDate>Sat, 20 Oct 2018 16:56:25 +0800</pubDate><description><![CDATA[题目：
Suppose we wish to create a video transition such that the second video appears under the first video through an opening circle(like a camera iris opening), as in Fig.22. Write a formula to use th...]]></description><category></category></item><item><title><![CDATA[Unet联网小游戏——简易版坦克动荡]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/80845663</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/80845663</guid><author>ShenDW818</author><pubDate>Thu, 28 Jun 2018 22:24:27 +0800</pubDate><description><![CDATA[前言

这一次，使用Unity3D的Network模块实现一个联网的小游戏，当然，资源有限，只是在本地模拟实现一个联网的小游戏，小游戏的名字为——坦克动荡。在开始实现这个游戏之前，我们需要了解一些关于Unet的基本知识，可参考博客——Unity5网络模块UNet介绍。  

场景构造

在了解了Unet的基础概念后，就可以开始做游戏了。  


  第一步，创建一个空对象，命名为NetworkMa...]]></description><category></category></item><item><title><![CDATA[牧师与恶魔过河游戏——智能提示]]></title><link>https://blog.youkuaiyun.com/ShenDW818/article/details/80727300</link><guid>https://blog.youkuaiyun.com/ShenDW818/article/details/80727300</guid><author>ShenDW818</author><pubDate>Mon, 18 Jun 2018 22:38:25 +0800</pubDate><description><![CDATA[前言

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这次实现一个含提示功能的牧师与恶魔过河小游戏，主要在上一个版本的牧师与恶魔小游戏上进行更改，通过增加一个状态计算和改版了得寻路算法，实现向玩家提示如何胜利完成游戏。游戏主体实现思路见上一篇博客——牧师与恶魔小游戏 动作分离版。 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;游戏效果图如下： ...]]></description><category></category></item></channel></rss>