【算法】
题目一:
题目是给一串数字(0 – 9)每个数字之间可以加 + – 号或者不加,组成的表达式计算结果等于 给定的目标数,输出所有满足条件的表达式。
例如: [1 2 3 4 5 6 7 8 9] 目标 100
可能的组合:
1 + 23 – 4 + 56 + 7 + 8 + 9
-1 – 2 + 34 – 5 – 6 + 78 + 9
题目二:
力扣易思柳,LRU题,之前没刷过,想到了用Dictionary和linkedlist来处理. 可以通过linkedlistnode 的prev和next快速定位来删除node,做到O(1) put和get
题目三:
应该算是一道easy-medium,给定一个数组,只有一个初始数字1,对这个数组的每个数字k,做k*2+1和k*3+1,然后加入数组,要求这个数组是sorted并且没有重复元素,返回第N个
这个数组应该是[1,3,4,7,9,10,13,….]
算法
3(1*2+1), 4(1*3+1)
7(3*2+1), 10(3*3+1)
9(4*2+1), 13(4*3+1)
…
因为出现了3算出来的比4还大,所以单纯用queue不行,要用heap,然后用set去重
分析了时间空间复杂度。
【系统设计】
题目一:
为Youtube用户设计列出一小时之内top 10播放量的视频,就是top k问题,我还讲了count-min sketch
题目二:
Google search ,Top K search results
题目三:
短链 short url
备注:怎么扩展,怎么确保数据不丢失
样例:
- 缓存
- 负载平衡
- 数据库选择
- 数据库架构
- 复制
- 分片
原文链接:https://blog.csdn.net/xnninger/article/details/115682070?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171851498716800211544536%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171851498716800211544536&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-18-115682070-null-null.nonecase&utm_term=AI%E9%9D%A2%E8%AF%95