自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老卫带你学

一起学习

  • 博客(531)
  • 收藏
  • 关注

原创 老卫带你学---K8S源码剖析(Deployment是如何进行SyncStatus)

deployment在progessing过程中,需要不断的同步状态,那整个过程是如何实现的呢?

2024-03-31 17:47:17 312

原创 老卫带你学---vscode使用remote-ssh时出现Could not establish connection to XXX: XHR failed

这种情况大部分都是本地升级/降级vscode版本,并且各种卸载安装,导致远端服务器的配置出了问题。然后直接删除之前的remote ssh的相关commit。然后重新连接,就可以重新安装相关依赖,正常登陆。直接ssh登录到远端服务器上。

2024-03-19 13:08:39 420

原创 老卫带你学---leetcode刷题(380. O(1) 时间插入、删除和获取随机元素)

实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;否则,返回 false。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true;否则,返回 false。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。

2024-03-16 20:54:55 352

原创 老卫带你学---leetcode刷题(378. 有序矩阵中第 K 小的元素)

给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。你必须找到一个内存复杂度优于 O(n2) 的解决方案。

2024-03-16 12:48:39 361

原创 老卫带你学---leetcode刷题(328. 奇偶链表)

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。示例 1:输入: head = [1,2,3,4,5]输出: [1,3,5,2,4]示例 2:输入: head = [2,1,3,5,6,4,7]

2024-03-15 23:19:44 319

原创 老卫带你学---leetcode刷题(204. 计数质数)

示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0。

2024-03-15 22:10:40 332

原创 老卫带你学---leetcode刷题(189. 轮转数组)

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

2024-03-15 20:43:15 388

原创 老卫带你学---leetcode刷题(1109. 航班预订统计)

这里有 n 个航班,它们分别从 1 到 n 进行编号。有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。请你返回一个长度为 n 的数组 answer,里面的元素是每个航班预定的座位总数。

2024-03-07 21:02:32 370

原创 老卫带你学---K8S源码剖析(Capabilities)

我们可以在pod、container中通过设置securityContext来限制container对宿节点的权限。

2024-03-05 17:06:37 390

原创 老卫带你学---K8S源码剖析(Auth)

Nodeidentify用来限制kubelet对api-server的访问鉴权,目前做的也比较简单,主要是对前缀进行匹配,看前缀是否是“system:node:”那核心的模块其实主要在几个match函数中。在前面进行完匹配后决定是否鉴权成功。

2024-03-05 15:34:12 318

原创 老卫带你学---leetcode刷题(179. 最大数)

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:“210”示例 2:输入:nums = [3,30,34,5,9]输出:“9534330”

2024-03-02 20:32:53 357

原创 老卫带你学---leetcode刷题(172. 阶乘后的零)

给定一个整数 n ,返回 n!结果中尾随零的数量。提示 n!示例 1:输入:n = 3输出:0解释:3!= 6 ,不含尾随 0示例 2:输入:n = 5输出:1解释:5!= 120 ,有一个尾随 0示例 3:输入:n = 0输出:0。

2024-03-02 20:15:06 351

原创 老卫带你学---leetcode刷题(166. 分数到小数)

给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回 任意一个。对于所有给定的输入,保证 答案字符串的长度小于 104。

2024-03-02 20:03:15 378

原创 老卫带你学---leetcode刷题(162. 寻找峰值)

峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入:nums = [1,2,1,3,5,6,4]输出:1 或 5。

2024-03-02 19:44:59 359

原创 老卫带你学---leetcode刷题(138. 随机链表的复制)

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y。

2024-03-02 18:56:46 306

原创 老卫带你学---leetcode刷题(150. 逆波兰表达式求值)

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为 ‘+’、‘-’、‘*’ 和 ‘/’。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除法总是 向零截断。表达式中不含除零运算。输入是一个根据逆波兰表示法表示的算术表达式。答案及所有中间计算结果可以用 32 位 整数表示。示例 1:输入:tokens = [“2”,“1”,“+”,“3”,“*”]输出:9。

2024-03-02 18:25:53 333

原创 老卫带你学---leetcode刷题(134. 加油站)

在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。如果存在解,则 保证 它是 唯一 的。

2024-03-02 17:27:53 359

原创 老卫带你学---leetcode刷题(131. 分割回文串)

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]

2024-03-02 15:24:18 326

原创 老卫带你学---leetcode刷题(412. Fizz Buzz)

给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:answer[i] == “FizzBuzz” 如果 i 同时是 3 和 5 的倍数。answer[i] == “Fizz” 如果 i 是 3 的倍数。answer[i] == “Buzz” 如果 i 是 5 的倍数。answer[i] == i (以字符串形式)如果上述条件全不满足。示例 1:输入:n = 3。

2024-03-01 23:34:53 304

原创 老卫带你学---leetcode刷题(387. 字符串中的第一个唯一字符)

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例 1:输入: s = “leetcode”输出: 0示例 2:输入: s = “loveleetcode”输出: 2示例 3:输入: s = “aabb”输出: -1提示:s 只包含小写字母。

2024-03-01 23:29:09 303

原创 老卫带你学---leetcode刷题(350. 两个数组的交集 II)

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

2024-03-01 23:20:29 357

原创 老卫带你学---leetcode刷题(326. 3 的幂)

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true;否则,返回 false。

2024-03-01 23:09:10 410

原创 老卫带你学---leetcode刷题(268. 丢失的数字)

给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

2024-03-01 23:00:49 351

原创 老卫带你学---leetcode刷题(242. 有效的字母异位词)

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false提示:s 和 t 仅包含小写字母进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

2024-03-01 21:01:18 323

原创 老卫带你学---leetcode刷题(202. 快乐数)

快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true;不是,则返回 false。示例 1:输入:n = 19输出:true解释:示例 2:输入:n = 2输出:false。

2024-02-29 22:45:14 318

原创 老卫带你学---leetcode刷题(191. 位1的个数)

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 3 中,输入表示有符号整数 -3。

2024-02-29 22:33:43 337

原创 老卫带你学---leetcode刷题(190. 颠倒二进制位)

颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。示例 1:输入:n = 00000010100101000001111010011100。

2024-02-29 22:27:37 345

原创 老卫带你学---leetcode刷题(171. Excel 表列序号)

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号。例如:A -> 1B -> 2C -> 3Z -> 26AA -> 27AB -> 28示例 1:输入: columnTitle = “A”输出: 1示例 2:输入: columnTitle = “AB”输出: 28示例 3:输入: columnTitle = “ZY”输出: 701。

2024-02-29 22:16:57 335

原创 老卫带你学---leetcode刷题(130. 被围绕的区域)

给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例 1:输入:board = [[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]]输出:[[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“O”,“X”,“X”]]

2024-02-29 22:02:06 363

原创 老卫带你学---leetcode刷题(125. 验证回文串)

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。示例 1:输入: s = “A man, a plan, a canal: Panama”输出:true解释:“amanaplanacanalpanama” 是回文串。示例 2:输入:s = “race a car”输出:false。

2024-02-29 20:54:40 319

原创 老卫带你学---leetcode刷题(118. 杨辉三角)

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入: numRows = 1输出: [[1]]

2024-02-28 21:52:48 351

原创 老卫带你学---leetcode刷题(116. 填充每个节点的下一个右侧节点指针)

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:int val;Node *left;Node *next;填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。示例 1:输入:root = [1,2,3,4,5,6,7]输出:[1,#,2,3,#,4,5,6,7,#]

2024-02-28 21:44:40 324

原创 老卫带你学---leetcode刷题(108. 将有序数组转换为二叉搜索树)

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:示例 2:输入:nums = [1,3]输出:[3,1]

2024-02-28 21:41:09 378

原创 老卫带你学---leetcode刷题(103. 二叉树的锯齿形层序遍历)

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[20,9],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]

2024-02-28 21:21:20 330

原创 老卫带你学---leetcode刷题(91. 解码方法)

一条包含字母 A-Z 的消息通过以下映射进行了 编码 :‘A’ -> “1”‘B’ -> “2”要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为:“AAJF” ,将消息分组为 (1 1 10 6)“KJF” ,将消息分组为 (11 10 6)注意,消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “06” 在映射中并不等价。

2024-02-28 20:58:21 313

原创 老卫带你学---leetcode刷题(73. 矩阵置零)

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。请使用 原地 算法。示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

2024-02-28 20:07:38 393

原创 老卫带你学---leetcode刷题(44. 通配符匹配)

给你一个输入字符串 (s) 和一个字符模式 § ,请你实现一个支持 ‘?’ 和 ‘’ 匹配规则的通配符匹配:’ 可以匹配任何单个字符。’ 可以匹配任意字符序列(包括空字符序列)。判定匹配成功的充要条件是:字符模式必须能够 完全匹配 输入字符串(而不是部分匹配)。示例 1:输入:s = “aa”, p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”, p = "输出:true解释:'’ 可以匹配任意字符串。

2024-02-28 19:58:49 368

原创 老卫带你学---分布式系统(2)

在分布式系统中,我们通过多副本来提高整体系统的High availability,但是多副本就一定会出现consistency一致性问题。所以出现了很多的算法来去解决这类问题。那解决一致性问题最根本的思想,就是将数据在一定的时间内同步到所有副本上。但是呢,中间可能出现节点故障、网络抖动、网络延迟顺序问题、使得问题更加复杂。那consistency其实可以分为强一致性(CP)和弱一致性(AP),对应的算法场景也就不同那其实Mysql的主从复制就是一个简单的弱一致性场景,只保证最终的一致性。

2024-02-19 23:34:55 353

原创 老卫带你学---分布式系统(1)

分布式系统就是一组协作计算机系统,通过网络通信来完成一系列连贯任务其特点在于分布式系统构建的本质在于,通过对底层infra的抽象来让整体变为单一系统底层infra主要包括,storage存储,coms网络,comp计算抽象的工具一般有rpc,threads,concurrencyPerformance需要重点考虑的应该是scalebility可扩展性,因为有了可扩展就可以不断增加资源来增加系统的性能。

2024-02-19 20:20:24 362

原创 老卫带你学---Bazel学习笔记(二)

今天继续学习Bazel的相关概念。

2024-02-04 18:50:43 896

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除