关于保研——写在最前面
最近常有小朋友来询问我保研种种,遂以此文记录相关心得体会,希望能给他们一些帮助。 摸黑过河还是挺难的,至今任清晰地记得当我还在大一,刚知道保研推免这个概念时,我的学长们告诉我很难很难。但现在我可以很负责地对我的学弟学妹们说,其实并没有那么难。 一、为什么保研这是所有想保研的同学最该思考清楚的问题,保 ...
Read more
SpringMVC 实现抽奖活动(3.优化—乐观锁实现Version2)
SpringMVC 实现抽奖活动(3.优化—乐观锁实现Version2)流程图:针对第一次代码review提出的缺陷与不足,重构了抽奖部分的代码并进行了优化,改用性能更高的乐观锁取代for update。(现在回头来看代码的语义真的好了很多) 核心代码:@Transactional public ...
Read more
SpringMVC 实现抽奖活动(2.Version1 —基于for update悲观锁)
SpringMVC 实现抽奖活动(2.Version1 —基于for update悲观锁)流程图: 第一个版本实现的抽奖是保证所有奖品一定能发完的情况(在该场景下只有一个),故每次抽奖的概率不同,会根据剩余用户数与奖品数动态调整(现在整理的时候再看代码的原意真的是惨不忍睹,比如一个map对象命名的后 ...
Read more
SpringMVC 实现抽奖活动(1.设计部分)
SpringMVC 实现抽奖活动(1.设计部分)抽奖活动的需求分析如下: 争议点: 是否需要保证奖品能抽完,若是则每次中奖的概率会越来越大,否则每次概率保持一样即可 如果中奖的概率设为1%,则抽100次抽中的概率(样品数每次会减1)为:1 - 99/100 * 98/99*……1/2,大约为百分之 ...
Read more
最长公共子序列(LCS)与最长公共子串(DP)
最长公共子序列(LCS)与最长公共子串(DP)1.子串与子序列的区别这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与母串保持一致,我们将其称为公共子序列。最长公共子序列(Longest Common ...
Read more
背包问题总结【01,恰好/不超过,完全,多重,路径记录,应用】
有N件物品和一个容量为V的背包。第i件物品的体积是w[i],价值是v[i]。 1.0-1 背包求解将哪些物品装入背包可使价值总和最大,每种物品至多只能选择一件 dp[i][j]表示第i件物品放入容量为j的背包所得的最大价值 dp[i][j]=max{dp[i-1][j-w[i]]+v[i] , dp ...
Read more