摘要:
一、流量控制与拥塞控制 在流量控制中,发送方发送的数据是由接收方决定,而在拥塞控制中,由发送方自己通过检测网络状况而决定。 二、拥塞控制的四个算法 1. 慢开始算法 刚开始发送TCP报文段时,先令拥塞窗口cwnd=1 (1个最大报文段长度MSS),逐次加倍 当到达慢开始门限时,改用拥塞避免算法。 2 阅读全文
摘要:
1 public class Singleton { 2 3 private Singleton(){ 4 //do something 5 } 6 7 private static volatile Singleton singleton = null; 8 9 public static Singleton getIns... 阅读全文
摘要:
引言: MySQL存储引擎主要分为 InnoDB 存储引擎与 MyISAM 存储引擎。都采用B+数的存储结构。 应用场景: InnoDB适合:(1)可靠性要求比较高,要求事务;(2)大量 insert 和 update 。 MyISAM适合:(1)没有事务。(2)插入不频繁,大量 select 。 阅读全文
摘要:
问题: 求解两个数组的最长公共子序列LCS(Longest Common Subsequence)。 思路: 如果要求一个问题的最优解(通常是最大值或者最小值),而且该问题能够分解成若干个子问题,并且小问题之间也存在重叠的子问题,则考虑采用动态规划。 设 X=(x1,x2,.....xn) 和 Y= 阅读全文
摘要:
问题: 求解一个数组的最长递增子序列。 思路: 如果要求一个问题的最优解(通常是最大值或者最小值),而且该问题能够分解成若干个子问题,并且小问题之间也存在重叠的子问题,则考虑采用动态规划。 示例: code: 阅读全文
摘要:
1.快速排序 采用分治策略,O(nlgn); 2. 归并排序 典型的分治思想,将数组分成若干部分,然后两两归并。O(nlgn) 阅读全文
摘要:
一、二分查找 二分查找算法又称折半查找算法。 其算法的基本思想是:在有序表中,取中间的记录作为比较关键字,若给定值与中间记录的关键字相等,则查找成功;若给定的值小于中间记录的关键字,则在中间记录的左半区间继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区间继续查找;不断重复这个过程,直到查 阅读全文
摘要:
1. 可重入锁 ReentrantLock 和 synchronized 都是可重入锁。 在method1中会调用另外一个synchronized方法method2,此时线程不必重新去申请锁,而是可以直接执行方法method2。如果不具有可重入性,则会造成死锁。 2. 可中断锁 Lock 是可中断锁 阅读全文
摘要:
题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例1: 示例2: 思路: 通过异或运算,将相同的抵消 code: 阅读全文
摘要:
题目: 假设你有一个数组,其中第 i 个元素是一支给定股票第 i 天的价格。 如果您只能完成最多一笔交易(即买入和卖出一股股票),则设计一个算法来找到最大的利润。 示例1: 示例2: 思路: result 永远保存最大的差值,buy 永远保存最小的价格。 code: 阅读全文