<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[水滴石穿]]></title><description><![CDATA[~~~我的编程日记~~~]]></description><link>https://blog.csdn.net/silent_strings</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; silent_strings]]></copyright><item><title><![CDATA[将yolov5s部署到安卓上实战经验总结]]></title><link>https://blog.csdn.net/silent_strings/article/details/137107502</link><guid>https://blog.csdn.net/silent_strings/article/details/137107502</guid><author>silent_strings</author><pubDate>Thu, 28 Mar 2024 15:40:40 +0800</pubDate><description><![CDATA[yolov5s部署到安卓上遇到的各种问题的解决方法记录]]></description><category></category></item><item><title><![CDATA[老师上网课板书装备0成本解决方案]]></title><link>https://blog.csdn.net/silent_strings/article/details/127936991</link><guid>https://blog.csdn.net/silent_strings/article/details/127936991</guid><author>silent_strings</author><pubDate>Sat, 19 Nov 2022 15:23:06 +0800</pubDate><description><![CDATA[近期因为家人有短期的上网课需求，想要搞一套网课板书设备，但又因为总共上不了几节，不想投入太多钱，所以我上网研究了下怎么弄比较省钱，最终以0成本搞定，当然前提是有些设备家里本来就有，如电脑和平板电脑，以下写我的最终解决方案，有同样需求的人可以参考。]]></description><category></category></item><item><title><![CDATA[img2col C++版本代码实现]]></title><link>https://blog.csdn.net/silent_strings/article/details/127706407</link><guid>https://blog.csdn.net/silent_strings/article/details/127706407</guid><author>silent_strings</author><pubDate>Mon, 07 Nov 2022 13:34:04 +0800</pubDate><description><![CDATA[img2col对于熟悉深度学习的卷积计算的人来说应该并不陌生，它是一种将普通卷积计算转换为一次矩阵乘法计算的算法，相较于直接计算卷积来说能提升计算效率。我所实现的代码，利用分块矩阵乘法的计算特性，将加偏置的步骤合并到一次矩阵乘法中，省去了一步矩阵加法。]]></description><category></category></item><item><title><![CDATA[怎样查询包含在A表中但不在B表中的数据？]]></title><link>https://blog.csdn.net/silent_strings/article/details/123186574</link><guid>https://blog.csdn.net/silent_strings/article/details/123186574</guid><author>silent_strings</author><pubDate>Mon, 28 Feb 2022 16:59:52 +0800</pubDate><description><![CDATA[假设有两个数据表A和B，

A表如下

id
			name
		1
			Bob
		3
			Tom
		4
			July
		5
			Lily
		B表如下

id
			age
		2
			20
		3
			50
		4
			33
		6
			35
		方法一

select * from A where id not in (select id from B);

方法二

select * from A where (select count(1) from B where B.i.]]></description><category></category></item><item><title><![CDATA[java动态加载包含scala语言的jar包需要注意的事项]]></title><link>https://blog.csdn.net/silent_strings/article/details/116593883</link><guid>https://blog.csdn.net/silent_strings/article/details/116593883</guid><author>silent_strings</author><pubDate>Mon, 10 May 2021 14:02:59 +0800</pubDate><description><![CDATA[最近写了一个spring boot工程，大概的需求就是要动态加载一个包含scala语言的jar包，调用其中的方法。

中间遇到了非常多的问题，网上的相关信息也不多，就一步步摸索着搞了出来，现在把一些经验记录如下：

1，调用jar包和被调用jar包都要加上下面三个依赖：

 &lt;dependency&gt;

 &lt;groupId&gt;org.scala-lang&lt;/groupId&gt;

 &lt;artifactId&gt;scala-library&lt;/artifact...]]></description><category></category></item><item><title><![CDATA[单词接龙的最短字符串长度：DFS加剪枝]]></title><link>https://blog.csdn.net/silent_strings/article/details/105016068</link><guid>https://blog.csdn.net/silent_strings/article/details/105016068</guid><author>silent_strings</author><pubDate>Sat, 21 Mar 2020 20:07:06 +0800</pubDate><description><![CDATA[前几天又刷到一单词接龙题，不一样的是这次要求的是能接龙的最短字符串长度，所谓能接龙的意思是最少有两个单词能够接龙（即单词一的尾字母与单词二的首字母一样），如果任意两个单词都无法接起来，输出0。这个题用DFS做是比较简单的，另外如果加些剪枝的话在大单词量的时候效率将会提升很多。

剪枝方法：首尾字母相同的单词在最短结果中最多只使用一次，因此对于首尾字母相同的单词，只记录最短单词的长度即可，其它单词可...]]></description><category></category></item><item><title><![CDATA[HDU5023：线段树应用于染色问题]]></title><link>https://blog.csdn.net/silent_strings/article/details/104874424</link><guid>https://blog.csdn.net/silent_strings/article/details/104874424</guid><author>silent_strings</author><pubDate>Sun, 15 Mar 2020 10:39:11 +0800</pubDate><description><![CDATA[早听说过线段树，但一直没有学习过，昨天终于学习了一下，并且刷了一道线段树的题，记录一下。

线段树就是把一个区间分两半，左子树存左半段，右子树存右半段，然后重复这个步骤，直到叶子节点（即区间长度为1的节点），就像下面这个图



然后每个节点上可以记录当前节点存储区间的一些信息，比如和，最值，颜色，容易知道这些信息都可以从左右子树获得。

下面上题上代码：


Problem Descriptio...]]></description><category></category></item><item><title><![CDATA[ganglia监控mongoDB]]></title><link>https://blog.csdn.net/silent_strings/article/details/50879870</link><guid>https://blog.csdn.net/silent_strings/article/details/50879870</guid><author>silent_strings</author><pubDate>Sun, 13 Mar 2016 20:40:44 +0800</pubDate><description><![CDATA[首先要有ganglia和mongodb，网上有很多关于ganglia和mongodb安装配置的过程，在此就不讲了。
1，在下面的网址下载mongodb.py和mongodb.conf，分别在python_modules和conf.d目录下
    
https://github.com/ganglia/gmond_python_modules/tree/master/mongodb
2，找]]></description><category></category></item><item><title><![CDATA[ganglia监控kafka]]></title><link>https://blog.csdn.net/silent_strings/article/details/50879723</link><guid>https://blog.csdn.net/silent_strings/article/details/50879723</guid><author>silent_strings</author><pubDate>Sun, 13 Mar 2016 20:13:43 +0800</pubDate><description><![CDATA[当然前提是有ganglia，由于ganglia安装部署过程网上有很多，此处就不讲了。
1，到github下载下面的工程：
    https://github.com/criteo/kafka-ganglia
2，用"mvn package"命令编译下载的工程，然后会在工程的target文件夹里生成四个.jar文件：kafka-ganglia-*.jar。再到网上下载一个metrics-ga]]></description><category></category></item><item><title><![CDATA[kafka集群安装配置]]></title><link>https://blog.csdn.net/silent_strings/article/details/50879407</link><guid>https://blog.csdn.net/silent_strings/article/details/50879407</guid><author>silent_strings</author><pubDate>Sun, 13 Mar 2016 19:17:46 +0800</pubDate><description><![CDATA[1，准备三台机器，例如IP地址分别为109.105.111.11, 109.105.111.12, 109.105.111.13的三台机器。
2，下载kafka稳定版本，我下载的是kafka_2.10-0.9.0.0.tgz。
3，分别在三台机器上解压放到想安装的目录，我的目录统一为usr/ss，解压命令为：tar -xzf kafka_2.10-0.9.0.0.tgz。
4，进入解压后的目]]></description><category></category></item><item><title><![CDATA[经典算法之动态规划(一)：入门级动态规划]]></title><link>https://blog.csdn.net/silent_strings/article/details/48809049</link><guid>https://blog.csdn.net/silent_strings/article/details/48809049</guid><author>silent_strings</author><pubDate>Tue, 29 Sep 2015 17:39:20 +0800</pubDate><description><![CDATA[终于要写高大上的动态规划啦~~虽然面对高难度的题目还是没底，但是简单的可用一维数组记录各子问题的解的入门级动态规划是已经OK的啦~下面以一个钢条切割的问题为例来讲述动态规划。
假设一公司进了一批长为10的钢条，打算切割然后去卖，各种长度的钢条的价格如下表：




1
2
3
4
5
6
7
8
9
10


1
5
8
9
10
17
17
20]]></description><category></category></item><item><title><![CDATA[求一个集合的所有子集(java实现)]]></title><link>https://blog.csdn.net/silent_strings/article/details/48732583</link><guid>https://blog.csdn.net/silent_strings/article/details/48732583</guid><author>silent_strings</author><pubDate>Fri, 25 Sep 2015 14:07:22 +0800</pubDate><description><![CDATA[求一个集合的所有子集表示从一个集合当中，任取任意项或不取，所能得到的所有结果，比如有一个集合{a,b,c,d}，那么{a,b}, {b, d}等都是它的子集，空集也是它的子集，一个具有n 个元素的集合，它的子集共有2^n个，因为对于每个元素都有两种可能：选与不选。下面上代码：
public class Subset {

	public static void main(String[] a]]></description><category></category></item><item><title><![CDATA[怎样根据下载链接得到文件名(并非直接从链接中截取)]]></title><link>https://blog.csdn.net/silent_strings/article/details/48443399</link><guid>https://blog.csdn.net/silent_strings/article/details/48443399</guid><author>silent_strings</author><pubDate>Mon, 14 Sep 2015 19:09:30 +0800</pubDate><description><![CDATA[今天开发一个Android app遇到一个问题，需要根据下载链接得到下载的文件名称，有时候这个名称直接在链接中截取即可，但很多时候下载链接中并不包含文件名，比如
http://d.958shop.com/d/down.aspx?fid=2015091000004 ，后来试了很多方法，最后终于找到了正解，话不多说，上代码：(其中url为下载链接，filename即为文件名)
    	Strin]]></description><category></category></item><item><title><![CDATA[又一个全排列算法]]></title><link>https://blog.csdn.net/silent_strings/article/details/48316839</link><guid>https://blog.csdn.net/silent_strings/article/details/48316839</guid><author>silent_strings</author><pubDate>Wed, 09 Sep 2015 15:38:37 +0800</pubDate><description><![CDATA[之前就写过两篇关于全排列算法的博文，一个是转来的，另一个是根据STL中一个全排列的原理自己写的，然后今天自己想了一个全排列算法，感觉比之前的两个都容易懂些，记录在此。这个方法同样可以用于元素有重复的情况，只需加一步去重。比如说要排列的元素为：1，1，2，3，此程序会认为1 1 2 3 和 1 1 2 3是不一样的，所以会有两个1 1 2 3，去掉重复的结果就可以了。]]></description><category></category></item><item><title><![CDATA[组合的两种递归算法]]></title><link>https://blog.csdn.net/silent_strings/article/details/48288127</link><guid>https://blog.csdn.net/silent_strings/article/details/48288127</guid><author>silent_strings</author><pubDate>Tue, 08 Sep 2015 11:00:37 +0800</pubDate><description><![CDATA[组合就是从n个物品中任意选择m个组成一组，下面两种递归算法都可以求出不同的组合，如果待选物品当中有重复的，比如说下面代码中an = new char[]{'1','2','3','4','5'} 变成 an = new char[]{'1','2','2','4','5'}，这两种算法依然有效，只不过要加一步去重复。下面上代码：
public class Select {
	static ch]]></description><category></category></item><item><title><![CDATA[经典算法之图的最短路径(二)：Bellman_Ford算法]]></title><link>https://blog.csdn.net/silent_strings/article/details/48178429</link><guid>https://blog.csdn.net/silent_strings/article/details/48178429</guid><author>silent_strings</author><pubDate>Wed, 02 Sep 2015 15:22:50 +0800</pubDate><description><![CDATA[Bellman_Ford算法也是一个求图的最短路径的非常经典的算法，它适用于求单源最短路径，相比于同样用于单源最短路径的Dijkstra算法，它的适用范围更广，它可以用于有向图和无向图，并且权值可以为负，如果存在负权回路，可输出提示。
算法的流程就是：每次遍历图中所有边进行松弛（所谓的松弛是这样的——比如说存在一条边e(u,v)，权值为w(u,v)，如果d(v)>d(u)+w(u,v)，则让d(]]></description><category></category></item><item><title><![CDATA[经典算法之图的最短路径(一)：Dijkstra算法]]></title><link>https://blog.csdn.net/silent_strings/article/details/48158981</link><guid>https://blog.csdn.net/silent_strings/article/details/48158981</guid><author>silent_strings</author><pubDate>Tue, 01 Sep 2015 15:50:47 +0800</pubDate><description><![CDATA[Dijkstra算法可以说基本上每一本有讲到图的最短路径的书上都会有的一个算法，但基本上都是讲原理和伪代码，今天自己用Java代码给实现了一下，记录在此。
Dijkstra算法只是解决某些图的最短路径问题，这些图需要满足以下条件：权值非负、有向图。并且该算法只适用于求单源点最短路径，即起始点只是固定的某一个点，当然了，如果想求多源点最短路径，多用几次Dijkstra算法也是能求出来的。
该算法]]></description><category></category></item><item><title><![CDATA[经典算法之0-1背包问题]]></title><link>https://blog.csdn.net/silent_strings/article/details/48053475</link><guid>https://blog.csdn.net/silent_strings/article/details/48053475</guid><author>silent_strings</author><pubDate>Fri, 28 Aug 2015 16:14:52 +0800</pubDate><description><![CDATA[0-1背包算法是非常经典的一个算法问题，可惜我一直都只会它的递归算法，而非递归算法是今天刚刚学会的，在此记录一下。
定义一个二维数组 maxValues[ ][ ] 用来记录最大价值，maxValues[i][V]表示从前i 件物品中选择物品放入容量为V 的背包可以得到的最大价值。那么就有方程 maxValues[i][V] = max{ maxValues[i-1][V], maxValues]]></description><category></category></item><item><title><![CDATA[自动生成的R.java有时不可靠]]></title><link>https://blog.csdn.net/silent_strings/article/details/48026173</link><guid>https://blog.csdn.net/silent_strings/article/details/48026173</guid><author>silent_strings</author><pubDate>Thu, 27 Aug 2015 13:28:26 +0800</pubDate><description><![CDATA[最近接触了安卓开发，今天遇到一个问题，就是有两个控件，一个TextView tv1，一个WebView wv1，本来wv1在tv1的上面程序可以正常跑起来的。
后来我把xml文件当中的两个控件换了下位置，把tv1放在了wv1的上面，结果跑起来出错，说是TextView对象不能被转换成WebView对象，我看了下，代码中涉及到转换成WebView对象的代码只有一处：
WebView wv = (]]></description><category></category></item><item><title><![CDATA[趣味算法之怎样订饭最省钱]]></title><link>https://blog.csdn.net/silent_strings/article/details/46864629</link><guid>https://blog.csdn.net/silent_strings/article/details/46864629</guid><author>silent_strings</author><pubDate>Mon, 13 Jul 2015 17:04:41 +0800</pubDate><description><![CDATA[近来很多同事都在网上订餐，网上订餐基本都会有优惠，不同家的优惠策略不同，但大体上都是三种策略，比如有几家是满15减6，满30减15，满50减20。
然后我突发奇想，何不写个程序，来根据餐厅的优惠政策计算下怎样拼饭最省钱呢？于是有了下面代码：
import java.util.ArrayList;
import java.util.Scanner;

public class Lunch {]]></description><category></category></item></channel></rss>