摘要:
有时候我们令多个线程去共同完成一项任务,在他们做到某个阶段后我们需要merge一下结果,然后继续去做。那么如何让他们在一个阶段结束后都停下来,等merge完后在并发执行呢?也许有人会说用join不就好啦,等待所有线程。join真的能很好的完成我们的要求吗?我们来看一下如果用join会是什么样的结果:... 阅读全文
摘要:
网络服务器,顾名思义是一个可以接受连接的host,我们要实现的网络服务器类是一个1.能够实现多个连接2.仅仅通过继承或实现网络服务器类(或接口)的处理就能实现不同的连接功能3.当服务器关闭时,已有建立的私有连接不被中断,但服务器不在接受新的连接针对以上功能我们分解一下要实现的模块:1.多线程实现多个... 阅读全文
摘要:
在学习设计模式时我就有一个疑问,关联和继承除了用法上的区别,好像在内存上并没有什么区别,继承也是父类作为了子类的元素(内存上),关联也是这样。而且关联好像更占内存一些。这就是设计模式里问题了“依赖倒转原则”。继承分为public继承,protect继承,private继承public:父类中的pub... 阅读全文
摘要:
代码: 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 struct Interval { 8 int start; 9 int end;10 Interval() : start(0), end... 阅读全文
摘要:
每一个学习算法的人最初接触动态规划时都久久不能理解其思想。为了更好的体会动态规划的思想,我推荐以下学习方式学习方式:首先研究最大连续子序列和,最长递增字串这两个题目,没有必要强行套对着题目套用状态,转换方程之类的,等你熟练了动态规划的思想后那些自动就理解了。关于这两个题目我建议找一张纸对着非递归的步... 阅读全文
摘要:
第一个的代码: 1 #include 2 #include 3 4 using namespace std; 5 6 bool isLegal(int i, int j, vector ¤t) 7 { 8 int size = current.size(); 9 in... 阅读全文
摘要:
代码: 1 #include 2 #include 3 4 using namespace std; 5 6 vector spiralOrder(vector>& matrix) 7 { 8 if (matrix.size() == 0) 9 return vector... 阅读全文
摘要:
代码: 1 #include 2 #include 3 4 using namespace std; 5 6 struct ListNode { 7 int val; 8 ListNode *next; 9 ListNode(int x) : val(x), ne... 阅读全文
摘要:
不知道大家有没有过这个疑问,为什么网易云的算法推荐做的那么令人惊喜? 关于这个问题我也想过,为什么网易云可以做的这么好,推荐的这么到位,他们的算法团队是如何去描述一个首歌,描述一个用户的。点进这个问题后,我看了当时排名第一的回答,答主介绍了一个算法,“潜在因子(Latent Factor)”。看完这... 阅读全文
摘要:
就是转圈圈!代码:#include#includeusing namespace std;void rotate(vector>& matrix) { int L = matrix.size(); int i = 0; while (i > matrix = { ... 阅读全文