摘要:
解题思路: 第一种方案: 二维dp 和为n的数,要么以1开头,要么以4开头,要么以9开头,依次类推,本题就是求这些可能方案中,需要平方数个数最少的那组解 dp[k][n] 表示以k开头的平方数序列,和为n时,最少需要的平方数个数 进一步递推可得 dp[k][n] = 1 + min{dp[k][n 阅读全文
摘要:
题目 解题思路: 第一种方案, 假设数组长度为n, dp[i][j]为从i到j所能达到的最大收益,那么本题即求dp[0][n 1], 对于dp[i][j], 其可能的cooldown位置有 I, i + 1, ..., j 1, j, 所以存在递推关系 dp[i][j] = max{ dp[i][k 阅读全文
摘要:
题目链接 https://leetcode.com/contest/weekly contest 96/problems/reachable nodes in subdivided graph/ 解题思路 1)题目要求,经过m步后,可以到达的点,等价于求有多少点距离起点的最短距离小于等于m,即这是一 阅读全文
摘要:
方向一: 尽可能减少跨机间的网络传输量,尽量优化传输耗时. 原因是1G带宽下传输1M耗时20微妙, 而锁操作一次25ns,两者有1000倍的差距,在分布式环境下,网络传输会成为性能瓶颈. 在处理分布式事务时更明显. 优化方法有: 方法一:通过同步复制, 将跨机操作转为本机操作,即将跨机的数据拷贝到 阅读全文
摘要:
*1.在线算法求数组的中位数 维护一个大顶堆,一个小顶堆 priority_queue<int, vector, greater> 小顶堆 priority_queue<int, vector, less> 大顶堆 为方便计算中位数,需保持大顶堆大小不小于小顶堆,所以要先判断堆大小 如果大顶堆大小等 阅读全文
摘要:
0.系统设计中很大一部分工作是 考虑当发生失败时如何处理. 通过对应的解决方案,规避掉各种异常,使系统健壮, 可以很好的容错, 最终得到一个高可用的服务. 1.善用缓存 理财业务,对于用户的收益数据,是实时去DB中查询的, 当DB发生故障时, 如果没有备份数据源,用户将看不到收益,如果使用redis 阅读全文
摘要:
127. Word Ladder 思路一:单向bfs, 使用visited数组记录哪些已经访问过了, 访问过的就不允许再次入队, 同时这里想到的是使用26个英文字母,枚举可能的取值, 类似brute force 思路二:双向bfs,使用两个set,这里没有使用queue,是因为需要在queue里查询 阅读全文
摘要:
loosely coupled 松散耦合 tightly coupled 紧耦合 go through 遍历 阅读全文
摘要:
HashTable 线程安全, 内部函数被synchronized修饰,对象级的锁 HashMap 非线程安全, 需要tradeoff 空间和查找时间, 空间利用率低时,冲突少,查询效率高,反之空间利用率高,冲突多,查询效率低 Collections.SynchronizedMap() 非绝对线程安 阅读全文
摘要:
Array 532. K diff Pairs in an Array 方案一:暴力搜索, N平方的时间复杂度,空间复杂度N 数组长度为10000,使用O(N平方)的解法担心TLE,不建议使用,尽管最终验证还是可以过. 方案二:哈希 时间复杂度N 空间复杂度N 1.two sum 思路: 使用has 阅读全文