摘要: void Main() { var root = new TreeNode(1) { left = new TreeNode(3) { left = new TreeNode(7), right = new TreeNode(6) }, right = new TreeNode(2) { left 阅读全文
posted @ 2024-01-20 17:55 热敷哥 阅读(8) 评论(0) 推荐(0) 编辑
摘要: “123” 方式一 1*100 =100+2*10=120+3*1=123 方式二 1*10+2=12 12*10+3 = 123 阅读全文
posted @ 2023-12-29 22:40 热敷哥 阅读(3) 评论(0) 推荐(0) 编辑
摘要: var s1 = "fsd"; var s2 = "abc"; var s3 = "abcd"; var s4 = "abca"; s1.CompareTo(s2).Dump();//1 不管长度,字符序小,字符串就小 s1.CompareTo(s3).Dump();//1 不管长度,字符序小,字符 阅读全文
posted @ 2023-12-07 22:16 热敷哥 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 1.异或 A^B=B^A A^(B^C)=(A^B)^C A^A=0 A^0=A 2.对于任何一个数n,进行一次n = n & (n-1)后n的最右边的一位1会变为0,循环当n变为0时循环次数就是n的二进制1的个数 阅读全文
posted @ 2023-12-02 21:42 热敷哥 阅读(3) 评论(0) 推荐(0) 编辑
摘要: var arr = new[] { 5, 4, 2, 3, 1 }; var len = arr.Length; var idx = new int[len]; for (int i = 0; i < len; i++) { idx[i] = i; } Array.Sort(idx, (m, n) 阅读全文
posted @ 2023-12-02 10:33 热敷哥 阅读(11) 评论(0) 推荐(0) 编辑
摘要: Redis单节点的分布式锁只需要注意三点就可以了: 1.加锁并设置锁的过期时间必须是原子操作; 2.锁的value值必须要有唯一性; 3.释放锁的时候要验证其value值,不是自己加的锁不能释放. 但是单节点分布式锁最大的缺点就是,它只作用在一个Redis节点上,如果该节点挂了,那就挂了. 那可不可 阅读全文
posted @ 2020-10-07 16:04 热敷哥 阅读(3248) 评论(3) 推荐(5) 编辑
摘要: 为什么要用分布式锁? 先上一张截图,这是在浏览别人的博客时看到的. 在了解为什么要用分布式锁之前,我们应该知道到底什么是分布式锁. 锁按照不同的维度,有多种分类.比如 1.悲观锁,乐观锁; 2.公平锁,非公平锁; 3.独享锁,共享锁; 4.线程锁,进程锁; 等等. 我们平时用的锁,比如 lock,它 阅读全文
posted @ 2020-10-06 21:15 热敷哥 阅读(1980) 评论(4) 推荐(6) 编辑
摘要: class Program { static void Main(string[] args) { var source = "5+2*2-3*4/2"; var result = Cal(source); Console.WriteLine(result); } static int Cal(st 阅读全文
posted @ 2020-07-19 18:50 热敷哥 阅读(477) 评论(2) 推荐(0) 编辑
摘要: public class Route<T> { public string FullRoute { get; } public Route(Stack<T> stack) { FullRoute = string.Join(",", stack); } } public class MyGraph< 阅读全文
posted @ 2020-07-04 18:27 热敷哥 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 广度优先搜索是一种用于图的查找算法,它主要解决两个问题: 1.从节点S到节点E有路径吗? 2.从节点S到节点E的所有路线中,哪条最短? 广度优先搜索的执行过程中,搜索范围从起点开始逐渐向外延伸,即先检查一度关系,再检查二度关系. 所谓一度关系:我的朋友和我就是一度关系. 所谓二度关系:我的朋友的朋友 阅读全文
posted @ 2020-07-04 18:25 热敷哥 阅读(884) 评论(0) 推荐(1) 编辑