TTLeoH
码龄6年
关注
提问 私信
  • 博客:31,986
    31,986
    总访问量
  • 72
    原创
  • 1,922,865
    排名
  • 9
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:美国
  • 加入CSDN时间: 2018-12-04
博客简介:

weixin_43946031的博客

查看详细资料
个人成就
  • 获得9次点赞
  • 内容获得6次评论
  • 获得58次收藏
创作历程
  • 83篇
    2021年
成就勋章
TA的专栏
  • leetcode
    70篇
  • 系统设计
    13篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

设计 News Feed

功能要求用户需求:用户可以收发文章用户有粉丝和关注的人Feeds会根据关注的人同步更新 (新的文章或删除旧文章)有新的文章会有notification数据假设1 亿/天 活跃用户5亿/天 文章, 平均一篇文章会传给20个人,100 亿/天的文章转发有大V 超过千万的粉丝数 ( 没有大V e.g 朋友圈会怎样)Feeds 以时间排序 (抖音推荐算法排序会怎么样)存储基本需求:可靠存储用户发送的消息,不能丢失。可读取某个人发布过的所有消息数据永久保存NoSQL:水平扩
原创
发布博客 2021.06.05 ·
646 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

设计聊天系统

这里写目录标题IRC 互联网中继聊天IRC 互联网中继聊天IRC是Internet Relay Chat 的英文缩写,中文一般称为互联网中继聊天。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为"Channel"(频道)的地方就某一话题进行交谈或密谈。每
翻译
发布博客 2021.05.29 ·
1184 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计点赞系统

设计点赞系统让我们设计一个类似点赞服务,用户可以对一些上传的视频,图片 或者文字进行评价。类似服务:Youtube.com,weibo.com,bilibili.com的点赞服务文章目录1.系统的要求和目标3.容量估算和约束3.系统API5. 架构设计6.数据库架构7.详细的组件设计8.元数据sharding9.负载平衡10. 改进:数据的冷热分离1.系统的要求和目标计划设计一个满足以下要求的简单版本的点赞系统:功能要求:用户应该可以对上的内容进行评价 喜欢 like 或者 不喜欢 disli
原创
发布博客 2021.05.22 ·
3372 阅读 ·
4 点赞 ·
3 评论 ·
11 收藏

设计Youtube或Netflix

设计Youtube或Netflix让我们设计一个类似YouTube的视频共享服务,用户可以在其中上传/查看/搜索视频。类似服务:netflix.com,vimeo.com,dailymotion.com,veoh.com文章目录1.为什么要使用YouTube?2.系统的要求和目标3.容量估算和约束4.系统API5. 架构设计6.数据库架构7.详细的组件设计8.元数据分片9.视频重复数据删除10.负载平衡11.缓存12.内容交付网络(CDN)13.容错1.为什么要使用YouTube?Youtube是世
翻译
发布博客 2021.05.12 ·
841 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

设计Twitter

设计Twitter让我们设计一个类似Twitter weibo的社交网络服务。服务的用户将能够发布推文,关注其他人和喜欢的推文。文章目录1.什么是Twitter?2.需求和系统的目标3.容量估算和约束4.系统API5.高级系统设计6.数据库架构编号7.数据分片8.缓存10.复制和容错11.负载平衡12.监控13.扩展的需求1.什么是Twitter?Twitter是一种在线社交网络服务,用户可以在其中发布和阅读140个字符的短消息,称为“ tweets”。已注册的用户可以发布和阅读推文,但未注册的用户
翻译
发布博客 2021.05.11 ·
481 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

微软 Leetcode

文章目录1. Two Sum3. Longest Substring Without Repeating Characters5. Longest Palindromic Substring23. Merge k Sorted Lists25. Reverse Nodes in k-Group41. First Missing Positive43 Multiply Strings49 Group Anagrams53 Maximum Subarray54 Spiral Matrix62 Unique Pa
原创
发布博客 2021.05.11 ·
1194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

微软 面试题

Kth Largest Element 第k大元素题目描述:在数组中找到第 k 大的元素。你可以交换数组中的元素的位置。Example样例 1:输入:k = 1nums = [1,3,4,2]输出:4解释:第一大的元素是4。样例 2:输入:k = 3nums = [9,3,2,4,8]输出:4解释:第三大的元素是4。Challenge要求时间复杂度为O(n),空间复杂度为O(1)。public class Solution { /**
原创
发布博客 2021.05.06 ·
1020 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

设计 DropBox 及类似的云文件存储系统

设计 DropBox让我们设计一个文件托管服务,例如Dropbox或Google Drive。云文件存储使用户可以将其数据存储在远程服务器上。通常,这些服务器由云存储提供商维护,并通过网络供用户使用。用户每月支付其云数据存储费用。类似服务:OneDrive,Google Drive为什么要使用云存储?云文件存储服务最近变得非常流行,因为它们简化了多个设备之间数字资源的存储和交换。人们认为,从使用单个个人计算机转变为使用具有不同平台和操作系统的多个设备(例如智能手机和平板电脑)可以随时随地从不同地理位置
翻译
发布博客 2021.04.27 ·
1197 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

Leetcode LinkedIn

464: 我能赢吗状压DP(DFS+记忆)T: O(NlogK)O(NlogK)O(NlogK)S:O(N)O(N)O(N)状态 int state: 可以用一个二进制位来标记1是否被用过了,即0表示没用过,1表示用过了。 比如00,表示没有一个数字被用过,01表示1被用过了,10表示2被用过了,11表示1和2都被用过了。我们使用f [] 布尔数组来记录对应状态下第一个人先选的情况下是否能赢的情况class Solution { Boolean[] f; int n, m ;
原创
发布博客 2021.04.22 ·
970 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 150: 逆波兰表达式求值

java 8 labmda 和 BiFunction 构建 map 表示 4个运算符对应的操作。stack 存储数字,遍历到运算符时把之前的两个数字 pop 出来运算得到的结果在 push 到stack 中。最终stack剩余的一个数字即为最终结果。class Solution { private final static Map<String, BiFunction<Integer, Integer, Integer>> map = new HashMap<>
原创
发布博客 2021.04.22 ·
138 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 1650: 二叉树的最近公共祖先 III

与160题一样的思路 1 ------o--- 1 + 2: ------o-----o--- 2 --o--- 2 + 1: --o---------o--- 公共祖先为root, Node p 到root 的 距离:x; Node q 到root 的 距离:y。让两Node先往上 找到 root,找到root后在各自指向以对方Node 再走一遍。最终 p 和 q 各自都走了 x+y 的 长度,且第二次到达 root 时相遇。对于 Node p 整个path:
原创
发布博客 2021.04.22 ·
506 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 1790: 仅执行一次字符串交换能否使两个字符串相等

s1 和 s2 只能有两个字符不同两个不同的字符位置交换后,s1 == s2class Solution { public boolean areAlmostEqual(String s1, String s2) { char[] sa = new char[2]; char[] ta = new char[2]; int cnt = 0; // 记录不同的次数 if(s1.length() .
原创
发布博客 2021.04.22 ·
166 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 755: 倒水 Pour Water

题目描述:We are given an elevation map, heights[i] representing the height of the terrain at that index. The width at each index is 1. After V units of water fall at index K, how much water is at each index?Water first drops at index K and rests on top of t
原创
发布博客 2021.04.14 ·
306 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 68:情侣牵手 Text Justification

中文描述:给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ’ ’ 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。说明:单词是指由非空格字符组成的字符序列。每
原创
发布博客 2021.04.13 ·
117 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 786:第 K 个最小的素数分数 K-th Smallest Prime Fraction

中文描述:给你一个按递增顺序排序的数组 arr 和一个整数 k 。数组 arr 由 1 和若干 素数组成,且其中所有整数互不相同。对于每对满足 0 < i < j < arr.length 的 i 和 j ,可以得到分数 arr[i] / arr[j] 。那么第 k 个最小的分数是多少呢? 以长度为 2 的整数数组返回你的答案, 这里 answer[0] == arr[i] 且 answer[1] == arr[j] 。题目描述:You are given a sorte
原创
发布博客 2021.04.13 ·
294 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java leetcode 常用代码模板

基础算法快速排序算法模板public void quickSort(int[] nums, int start,int end){ if(start >= end) return; int l = start; int r = end; int mid = l + (r-l>>1); int pivot = nums[mid]; while(l <= r){ w
原创
发布博客 2021.04.17 ·
1059 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

KMP 总结

求next数组private int[] kmpNext(String str){ int[] next = new int[str.length()]; int j = 0; for(int i = 1; i < str.length(); i++){ while(j > 0 && str.charAt(i) != str.charAt(j)){ j = next[j-1
原创
发布博客 2021.04.17 ·
104 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 765:情侣牵手 Couples Holding Hands

中文描述:N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。这些情侣的初始座位 row[i] 是由最初始坐在第 i 个座位上的人决定的。题目描述:N couples sit in 2N seats arranged in a
原创
发布博客 2021.03.25 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 685. 冗余连接 II Redundant Connection II

中文描述:在本问题中,有根树指满足以下条件的 有向 图。该树只有一个根节点,所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点。输入一个有向图,该图由一个有着 n 个节点(节点值不重复,从 1 到 n)的树及一条附加的有向边构成。附加的边包含在 1 到 n 中的两个不同顶点间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组 edges 。 每个元素是一对 [ui, vi],用以表示 有向 图中连接顶点 ui 和顶点 vi 的边,其
原创
发布博客 2021.03.25 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode 684: 冗余连接 Redundant Connection

中文描述:在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v] 应满足相同的格式 u <
原创
发布博客 2021.03.25 ·
120 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多