<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ITString的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ITString</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ITString]]></copyright><item><title><![CDATA[史上最详细的线段树教程]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/110950850</link><guid>https://blog.youkuaiyun.com/ITString/article/details/110950850</guid><author>ITString</author><pubDate>Thu, 10 Dec 2020 13:07:35 +0800</pubDate><description><![CDATA[线段树是一种树形的高级数据结构，因为noip不考这种数据结构，而且当时的代码实现能力比较差，编程水平比较低，所以高中的时候粗略的看了看，并没有真正的搞懂，虽然早已弃了算法竞赛的坑，但还是回过头去研究了一下这种高级数据结构并写下此教程，以纪念曾经奋斗在OI道路上的日子。

问题提出：

现有如下的问题，给定一个的序列，实现以下操作：

①更新序列的某个值。

②查询序列的某个区间的最小值(最大值、区间和)线段树常用于解决区间统计问题。求最值，区间和等操作均可使用该数据结构，本篇以求最小值为例。

③更新序列的]]></description><category></category></item><item><title><![CDATA[算法系列——四种最短路算法：Floyd，Dijkstra，Bellman-Ford，SPFA]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/110950819</link><guid>https://blog.youkuaiyun.com/ITString/article/details/110950819</guid><author>ITString</author><pubDate>Thu, 10 Dec 2020 13:06:40 +0800</pubDate><description><![CDATA[写在前面：

好久没有更新博客了，距离上一次更新已经过去了十一个月了，一是因为课业繁重，二是因为这一年中接了不少项目。其实早就想写写算法和数据结构相关的文章了，之前在Coders群里也说过17年要多写写算法和数据结构，奈何计划赶不上变化，实在是没有工夫写。现在到了18年了，最近刚放寒假，数据科学导论实验今天交上了最后一个，总算是有些闲工夫了，准备写些东西却又不知道应该写什么，算法那么多，从哪个写起呢？思来想去，想到了最短路径算法，因为博主今年开了计算机网络课程，在计算机网络中，有一个很重要的东西就是路由，即]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第九周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79038247</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79038247</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 20:36:01 +0800</pubDate><description><![CDATA[这周是最后一周，我们下周就要答辩了。最后做一次工作总结，这个项目从暑假开始，然后开学之后坐了一个模型出来，模型有很多问题，但是核心算法已经重要的xml建模部分已经做好了。而且我不会前端，所以这个项目的前端写的十分混乱，在实训的过程中，我们就是主要进行前端的优化以及后端的完善，比如pdf导出的完善，数据库的完善，中间有很多问题，但是最终都解决了。但是最后仍然不完美，虽然实训已经结束，但是这个项目没有]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第八周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79038140</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79038140</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 20:30:23 +0800</pubDate><description><![CDATA[这一周我们把所有的接口都实现好了，然后部署到了老师的服务器上，可是部署的时候出现了很多问题，首先是启动ElasticSearch的时候，我是直接把本地的ElasticSearch拷到了服务器上，然后启动，结果报了错，查log发现说是不能使用root用户打开，然后我们就重新设置了一个用户，然后启动，结果启动之后立马就退出了，然后查日志也没看到有什么地方有错，就是打开之后，过不了多久就显示，已杀死，而]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第七周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79037973</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79037973</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 20:14:09 +0800</pubDate><description><![CDATA[前端部分的优化作的差不多了。我们这个项目并没有让前后端完全分离。因为有些地方耦合起来比较方便，比如在文章查看的哪部分，因为我们有书籍查看，文章查看。文章查看又分很多部分，比如根据正文查询的，根据文章名字查询的，根据注释查询的。他们其他部分都是一样的，只有展示部分有些许不一样，以及获取数据的url不一样，这两部分可以直接使用jsp的el表达式直接渲染出来，然后他们通用一个页面。这样就可以精简很多代码]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第六周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79037960</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79037960</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 20:00:54 +0800</pubDate><description><![CDATA[最近做的工作如下：继续实现之前接口文档的接口，更换ORM框架。

之前ORM层一直使用spring data,spring data实现了JPA，在进行基本的增删改查的时候，是很方便的，但是如果有多对多关系，这时候需要新建一张关系表，这时候就比较麻烦了。而且效率还十分低，所以我作出决定，将ORM层换成了mybatis框架。虽然mybatis中基本的增删改查还是需要自己来实现，但是JPA里面已经]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第五周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79037792</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79037792</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 19:49:59 +0800</pubDate><description><![CDATA[这周我们实现了导出pdf，导出pdf分两步，因为我们的古文是放到svg中的，所以第一步是把每个svg给转成pdf，然后在进行pdf的合并，每个svg是一页pdf，这样最后得到比较完好的效果。
在我本地进行测试的时候，是没问题的，可是之后把这块功能部署到远程服务器上之后，再重新导出的时候，竟然打印不出来文字，最后查找资料才找到问题所在，原因是字体缺失。解决方案如下：
先安装fontconfig，]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第四周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79037687</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79037687</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 19:37:53 +0800</pubDate><description><![CDATA[我们这次自习研究了一下ElasticSearch中的分词器，最终我们决定使用ik中文分词器，
https://github.com/medcl/elasticsearch-analysis-ik
这个分词器中有两种分词方式，一种是ik_smart一种是ik_max_word，前者是通过最粗粒度去进行分词，后者是通过最细粒度进行分词。我们研究之后，决定使用ik_max_word这个是把一句话穷举]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第三周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79037476</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79037476</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 19:21:42 +0800</pubDate><description><![CDATA[重新设计了数据库，之前的数据库设计不是很合理。我们重新设计了数据库，提高了数据库的性能，由于作者部分可以重用，而且一本书或者一篇文章可能不只有一个作者，所以我们新建了一个作者表，然后每次，就先检测这个作者在作者表里是否存在，若存在则直接使用现成的，否则就插入新的作者，然后使用新的id进行关联，
新的表结构如下：

#### 用户:users
    id char(32) 唯一标识 UUID]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第二周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79037434</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79037434</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 18:52:28 +0800</pubDate><description><![CDATA[这周我们把之前的代码完善了一下，重点是完善了参数检验过程。之前写接口的时候，只是单纯的写逻辑，没有完善用户参数的检验，最近把用户参数检验加上了，这样提升了项目的健壮性，因为有时候因为用户输入参数非法，而且没有仔细检查，会导致很严重的错误。所以用户输入的检查是很重要的。现在的检验都是很直接的，编程式检验，就是在接收到用户请求之后，写逻辑进行检验。这是最直接，也是最简便的一种做法。不过这样会导致大量的]]></description><category></category></item><item><title><![CDATA[【大三上学期实训】第一周总结]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/79036865</link><guid>https://blog.youkuaiyun.com/ITString/article/details/79036865</guid><author>ITString</author><pubDate>Thu, 11 Jan 2018 18:47:47 +0800</pubDate><description><![CDATA[我们本周商量了一下项目需求，这个项目之前是我再做的，现在新添加了三个队友，需要把项目在重新熟悉起来。
经过本次的商量总结，我们确定了新的接口文档。我是做后台的，对前端不是很熟悉，所以之前的前端写的很乱。很多地方写的不优雅，所以这次的主要任务是优化前端代码，这部分工作由王方良和陈苇如去做，后台部分我和祖佑再把新的功能实现出来，即导出pdf，还有就是项目的核心算法，包括用ElasticSearch进]]></description><category></category></item><item><title><![CDATA[【实训】第七周总结下]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/73441697</link><guid>https://blog.youkuaiyun.com/ITString/article/details/73441697</guid><author>ITString</author><pubDate>Sun, 18 Jun 2017 23:03:54 +0800</pubDate><description><![CDATA[最近实现了上次写的新的接口，然后测试了短信接口。可以正常使用，不过每天只有十条。现在iOS已经做完了样式部分，正在调试接口。
昨天和iOS联调的时候，发现sql语句报错，发现数据库中有一个表叫做order，正好MySQL中有一个关键字叫order，所以才会报错，解决方案是把order用反引号引起来。还有一个以前没见过的就是一个表中出现多个timestamp并设置其中一个为current_time]]></description><category></category></item><item><title><![CDATA[【实训】第七周总结上]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/73250089</link><guid>https://blog.youkuaiyun.com/ITString/article/details/73250089</guid><author>ITString</author><pubDate>Wed, 14 Jun 2017 16:58:38 +0800</pubDate><description><![CDATA[最近做了以下工作：添加了收藏商家的功能，添加了预定旅游公司的功能，以下是数据库和接口文档


商品 trip
id 唯一标示 int(9) 自增
name 名称 varchar(25)
describe 描述 varchar(255)
price 价格 double 
grade 评分 double
collection 收藏 int(9)
order 下单 int(9)
publishT]]></description><category></category></item><item><title><![CDATA[【实训】第六周总结下]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/73123420</link><guid>https://blog.youkuaiyun.com/ITString/article/details/73123420</guid><author>ITString</author><pubDate>Mon, 12 Jun 2017 16:21:51 +0800</pubDate><description><![CDATA[最近的工作：学习使用mybatis generator自动生成代码。继续实现接口。
在hibernate spring data等实现了JPA标准的框架中，进行增删改查是比较方便的。但是使用mybatis这种框架的时候，就比较麻烦了，还需要自己手写增删改查逻辑。不过增删改查的逻辑代码都是固定的，然后我去请教了一下在美团工作的学长，他告诉我有一个工具叫mybatis generator，使用这个工]]></description><category></category></item><item><title><![CDATA[【实训】第六周总结上]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/73123106</link><guid>https://blog.youkuaiyun.com/ITString/article/details/73123106</guid><author>ITString</author><pubDate>Mon, 12 Jun 2017 16:15:40 +0800</pubDate><description><![CDATA[最近做的工作如下：继续实现之前接口文档的接口，和iOS端交互，更换ORM框架。
之前ORM层一直使用spring data,spring data实现了JPA，在进行基本的增删改查的时候，是很方便的，但是如果有多对多关系，这时候需要新建一张关系表，这时候就比较麻烦了。而且效率还十分低，所以我作出决定，将ORM层换成了mybatis框架。虽然mybatis中基本的增删改查还是需要自己来实现，但是J]]></description><category></category></item><item><title><![CDATA[【实训】第五周总结下]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/72860379</link><guid>https://blog.youkuaiyun.com/ITString/article/details/72860379</guid><author>ITString</author><pubDate>Sun, 04 Jun 2017 17:56:11 +0800</pubDate><description><![CDATA[最近做了以下工作：继续实现了之前未实现的接口
最近将原来的接口完善了以下，加入一些细化的逻辑，更细致的参数检验方法。另一个就是为了提高开发效率，研究了spring boot的热部署方法，因为之前每次修改类或者配置文件，总要重新启动，浪费了大量的时间，所以决定研究一下spring boot的热部署方法。总的来说有两个方案
方式一：使用springloaded 热加载  在pom.xml中添加以下]]></description><category></category></item><item><title><![CDATA[【实训】第五周总结上]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/72860307</link><guid>https://blog.youkuaiyun.com/ITString/article/details/72860307</guid><author>ITString</author><pubDate>Sun, 04 Jun 2017 17:43:02 +0800</pubDate><description><![CDATA[最近做了以下工作:规范化数据库命名。继续实现之前没有实现的业务逻辑
本次实训项目，用的rom框架为spring data. spring data实现了JPA规范，实现了大量的模板代码，极大的简化了数据库交互的开发。之前数据库的命名方式都是两个单词之间用下划线分割，后来一位拿到了美团offer的学长指点，说最佳实践是统一使用驼峰命名方法，不管是数据库还是代码中，这样统一下来，简化了数据库到对象属]]></description><category></category></item><item><title><![CDATA[【实训】第四周总结下]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/72848215</link><guid>https://blog.youkuaiyun.com/ITString/article/details/72848215</guid><author>ITString</author><pubDate>Fri, 02 Jun 2017 22:06:54 +0800</pubDate><description><![CDATA[最近做的工作如下：完善了后台已有的接口，重点是完善了参数检验过程。
之前写接口的时候，只是单纯的写逻辑，没有完善用户参数的检验，最近把用户参数检验加上了，这样提升了项目的健壮性，因为有时候因为用户输入参数非法，而且没有仔细检查，会导致很严重的错误。所以用户输入的检查是很重要的。现在的检验都是很直接的，编程式检验，就是在接收到用户请求之后，写逻辑进行检验。这是最直接，也是最简便的一种做法。不过这样]]></description><category></category></item><item><title><![CDATA[【实训】第三周总结下]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/72848076</link><guid>https://blog.youkuaiyun.com/ITString/article/details/72848076</guid><author>ITString</author><pubDate>Fri, 02 Jun 2017 21:43:59 +0800</pubDate><description><![CDATA[最近做了以下工作：根据学习的支付宝的接口文档，实现了一套支付框架。
首先要实现的功能就是接受APP的下单信息，进行下单的签名，这一部分就是接受移动端传来的消息，然后通过支付包提供的秘钥进行签名。签名之后交还给移动端。
其次是实现了支付成功之后的验证，支付成功之后，支付宝会返回给移动端信息，然后这时候移动端要再次传该参数到服务器，服务器进行验证检验，然后更新订单信息。然后进行最终确认。
以上就]]></description><category></category></item><item><title><![CDATA[【实训】第二周工作下]]></title><link>https://blog.youkuaiyun.com/ITString/article/details/72847899</link><guid>https://blog.youkuaiyun.com/ITString/article/details/72847899</guid><author>ITString</author><pubDate>Fri, 02 Jun 2017 21:20:12 +0800</pubDate><description><![CDATA[最近做了以下工作：研究了融云的API。
融云主要应用到前端。]]></description><category></category></item></channel></rss>