会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Forrest
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
22
下一页
2019年7月30日
大话设计模式-读书笔记
摘要: 面向对象: 需求变换是必然的,那么尽管无法预测会发生什么,但通常可以预测哪里会发生变化,面向对象的优点之一是可以封装这些变化的区域,从而更容易的将代码与变化产生的影响隔离开。代码可以逐步演进,新代码可以影响较少的加入。经典的设计模式是可以复用的面向对象设计方法。 书的配套code分析,回头补上 1.
阅读全文
posted @ 2019-07-30 23:36 demianzhang
阅读(304)
评论(0)
推荐(0)
2019年7月28日
LeetCode dp专题
摘要: 1. 动态规划的适用场景 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。 2. 动态规划的基本思想 动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。通常许多子问题非常相似,
阅读全文
posted @ 2019-07-28 22:51 demianzhang
阅读(534)
评论(0)
推荐(0)
2019年7月27日
Range Sum Query - Mutable 精简无递归线段树
摘要: 操作: 单点更新,区间求和 区间求和:如sum [3,10) 需要对19,5,12,26节点求和即可。 观察可知,左端点为右子节点(奇数)时直接相加,右端点为左子节点(偶数)时直接相加,两边向中间移动并求其父节点。 Refer: Codeforces blog 树状数组解法 所有的奇数位置的数字和原
阅读全文
posted @ 2019-07-27 02:26 demianzhang
阅读(269)
评论(0)
推荐(0)
2019年7月24日
Shuffle an Array (水塘抽样)
摘要: 随机性问题 水塘抽样算法可保证每个样本被抽到的概率相等 使用场景:从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况 Knuth洗牌算法 拿起第i张牌时,只从它前面的牌随机选出j,或从它后面的牌随机选出j交换即可
阅读全文
posted @ 2019-07-24 18:54 demianzhang
阅读(298)
评论(0)
推荐(0)
2019年7月23日
I/O多路复用
摘要: 1、使用场景 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接字),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TC
阅读全文
posted @ 2019-07-23 13:22 demianzhang
阅读(344)
评论(0)
推荐(0)
2019年7月18日
MySQL知识
摘要: 表锁: MySQL服务器端会使用读写锁实现表锁,忽略存储引擎的锁机制 行锁: 在存储引擎使用的锁机制,并发效果更好 事务:一组原子性的SQL查询,要么全部执行成功,要么全部执行失败 ACID:原子性,一致性,隔离性,持久性 隔离级别:未提交读(用的少),提交读(不可重复读),可重复读(出现幻读),可
阅读全文
posted @ 2019-07-18 11:39 demianzhang
阅读(95)
评论(0)
推荐(0)
2019年7月13日
218. The Skyline Problem (LeetCode)
摘要: 天际线问题,参考自: 百草园 天际线为当前线段的最高高度,所以用最大堆处理,当遍历到线段右端点时需要删除该线段的高度,priority_queue不提供删除的操作,要用unordered_map来标记要删除的元素。从heap中pop的时候先看有没有被标记过,如果标记过,就一直pop直到空或都找到没被
阅读全文
posted @ 2019-07-13 20:18 demianzhang
阅读(269)
评论(0)
推荐(0)
2019年7月7日
并发编程-读书笔记
摘要: 线程有join和detach两种结束方式,join:主线程等待该线程结束,detach:主线程不等待该线程结束,让其在后台运行。join需要注意选择适当的位置,在线程启动后可能会抛出异常,在try/catch中也应该考虑join(一种方式是使用“资源获取即初始化方式”(RAII,Resource A
阅读全文
posted @ 2019-07-07 13:59 demianzhang
阅读(156)
评论(0)
推荐(0)
2019年7月6日
Lock Free (无锁并发)
摘要: CAS( compare and swap) 原子操作,保证了如果需要更新的地址没有被其他进程(线程)改动过,那么它可以安全的写入。而这也是我们对于某个数据或者数据结构加锁要保护的内容,保证读写的一致性,不出现dirty data。可在循环中不断执行CAS,如果共享变量没有改变,那么swap,在当前
阅读全文
posted @ 2019-07-06 10:05 demianzhang
阅读(5058)
评论(0)
推荐(0)
2019年6月16日
最近公共祖先 LCA 递归非递归
摘要: 给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。假设给出的两个节点都在树中存在。 dfs递归写法 查找两个node的最近公共祖先,分三种情况: 深度优先遍历二叉树,一旦找到了两个节点其中的一个,就将这个几点返回给上一层,上一层节点通过判断
阅读全文
posted @ 2019-06-16 12:08 demianzhang
阅读(1968)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
···
22
下一页
公告