-
2021 的 Flag 可以立起来了! at 2021年01月08日
2021 年学习计划
技术类
优先级从上到下,系统的学习。
- 学习 istio 。
- 学习 kubernetes ,网络,存储等等。
- 学习 go 语言,使用 go 语言编写个小工具吧。
- 学习 ceph 分布式存储。
书籍
- OKR 体系学习
- SRE:Google 运维解密
- SRE 生存指南:系统中断响应与正常运行时间最大化
其他的能看多少看多少。
-
2020 的 Flag 可以立起来了! at 2021年01月08日
2020 年学习计划 [总结]
技术类
优先级从上到下,系统的学习。
- 学习 rhca【没学】
- 学习 redis5.0【完成】
- 学习 mysql【没学】
- 学习 kubernetes【完成】
- 学习 istio【没学】
- 学习 hashicorp 全家桶【完成】
- 学习 tigk 监控方案【完成】
书籍
- Kubernetes 网络权威指南:基础、原理与实践
- Kubernetes 微服务实战
- 基于 Kubernetes 的容器云平台实战
- Kafka 并不难学!入门、进阶、商业实战
- Kubernetes 权威指南:从 Docker 到 Kubernetes 实践全接触(第 4 版)
- 阿里云运维架构实践秘籍
- Elasticsearch 实战与原理解析
- InfluxDB 原理与实战
- DevOps 和自动化运维实践
- Prometheus 监控实战
- Jenkins 2.x 实践指南
- Redis 5 设计与源码分析
- Redis 使用手册
-
推荐一个工具:使用 kainstall 工具一键部署 kubernetes (k8s) 高可用集群 at 2021年01月08日
- 首先学会 shell 语法。
- 尝试使用 shell 来解决需求。
- 借鉴好脚本的写法。
- 看看最佳实践。
- shell 资料 https://cs.leops.cn/#/cheatsheet/linux/bash
-
推荐一个工具:使用 kainstall 工具一键部署 kubernetes (k8s) 高可用集群 at 2020年11月12日
顶顶顶
-
大伙的 CICD 流程都是什么样的呢 at 2020年07月18日
上面是以前搞的 iis 发布。
-
455. 分发饼干 (Assign Cookies)[简单] at 2020年06月22日
class Solution: def findContentChildren(self, g: List[int], s: List[int]) -> int: # 贪心算法 g.sort() s.sort() i = 0 j = 0 while i < len(g) and j < len(s): if g[i] <= s[j]: i += 1 j += 1 return i
-
459. 重复的子字符串 (Repeated Substring Pattern)[简单] at 2020年06月20日
class Solution: def repeatedSubstringPattern(self, s: str) -> bool: return s in (s + s)[1: len(s)*2 -1]
-
class Solution: def minMoves(self, nums: List[int]) -> int: sum = 0 minmum = min(nums) for i in nums: sum += i-minmum return sum
-
class Solution: def findDisappearedNumbers(self, nums: List[int]) -> List[int]: # 将所有正数作为数组下标,置对应数组值为负值。那么,仍为正数的位置即为(未出现过)消失的数字。 for num in nums: nums[abs(num)-1] = -abs(nums[abs(num)-1]) print(nums) return [i+1 for i,num in enumerate(nums) if num>0]
-
447. 回旋镖的数量 (Number of Boomerangs)[简单] at 2020年06月16日
class Solution: def numberOfBoomerangs(self, points: List[List[int]]) -> int: result=0 for m in points: dic={} for j in points: distance=(m[0]-j[0])**2+(m[1]-j[1])**2 if distance not in dic: dic[distance]=1 else: dic[distance]+=1 for val in dic.values(): if val>=2: result+=val*(val-1) return result
-
443. 压缩字符串 (String Compression)[简单] at 2020年06月15日
class Solution: def compress(self, chars: List[str]) -> int: count = 1 length = len(chars) for index in range(length-1, -1, -1): if index > 0 and chars[index] == chars[index-1]: count += 1 else: end = index+count chars[index: end] = [chars[index]] if count == 1 else [chars[index]] + list(str(count)) count = 1 return len(chars)
-
441. 排列硬币 (Arranging Coins)[简单] at 2020年06月14日
class Solution: def arrangeCoins(self, n: int) -> int: c = 0 while n > c: c = c + 1 n = n - c return c
-
437. 路径总和 III (Path Sum III)[简单] at 2020年06月14日
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def pathSum(self, root, sum): if root == None: return 0 return self.count(root,sum)+self.pathSum(root.left,sum)+self.pathSum(root.right,sum) def count(self,root,sum): if root ==None: return 0 return int(root.val == sum) + self.count(root.left,sum-root.val) + self.count(root.right,sum-root.val)
-
434. 字符串中的单词数 (Number of Segments in a String)[简单] at 2020年06月13日
class Solution: def countSegments(self, s: str) -> int: return len(s.split())
-
415. 字符串相加 (Add Strings)[简单] at 2020年06月12日
class Solution: def addStrings(self, num1: str, num2: str) -> str: res = "" i, j, carry = len(num1) - 1, len(num2) - 1, 0 while i >= 0 or j >= 0: n1 = int(num1[i]) if i >= 0 else 0 n2 = int(num2[j]) if j >= 0 else 0 tmp = n1 + n2 + carry carry = tmp // 10 res = str(tmp % 10) + res i, j = i - 1, j - 1 return "1" + res if carry else res
-
414. 第三大的数 (Third Maximum Number)[简单] at 2020年06月10日
class Solution: def thirdMax(self, nums: List[int]) -> int: a = b = c = float('-inf') for num in nums: if a < num: a , b , c = num , a , b elif b < num < a: b , c = num , b elif c < num < b: c = num return a if c == float('-inf') else c
-
412. Fizz Buzz[简单] at 2020年06月09日
class Solution: def fizzBuzz(self, n: int) -> List[str]: res = [] for i in range(1,n+1): res.append('Fizz'[i%3*len('Fizz')::]+'Buzz'[i%5*len('Buzz')::] or str(i)) return res
-
409. 最长回文串 (Longest Palindrome)[简单] at 2020年06月08日
class Solution: def longestPalindrome(self, s: str) -> int: d = {} for i in range(len(s)): if s[i] not in d: d[s[i]] = 1 else: d[s[i]] += 1 count = 0 for j in d: count += d[j] // 2 * 2 if d[j] % 2 == 1 and count % 2 == 0: count += 1 return count
-
405. 数字转换为十六进制数 (Convert a Number to Hexadecimal)[简单] at 2020年06月07日
class Solution: def toHex(self, num: int) -> str: return hex(num&0xFFFFFFFF)[2:]
-
404. 左叶子之和 (Sum of Left Leaves)[简单] at 2020年06月06日
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def sumOfLeftLeaves(self, root: TreeNode) -> int: if root==None: return 0 if root.left and root.left.left==None and root.left.right==None: return root.left.val+self.sumOfLeftLeaves(root.right) else: return self.sumOfLeftLeaves(root.left)+self.sumOfLeftLeaves(root.right)
-
401. 二进制手表 (Is Subsequence)[简单] at 2020年06月05日
class Solution: def readBinaryWatch(self, num: int) -> List[str]: bins = [str(bin(i))[2:].count('1') for i in range(60)] results = [] for hour in range(12): for minute in range(60): if bins[hour] + bins[minute] == num: results.append('%d:%02d'%(hour, minute)) return results
-
392. 判断子序列 (Is Subsequence)[简单] at 2020年06月04日
class Solution: def isSubsequence(self, s: str, t: str) -> bool: t = iter(t) return all(i in t for i in s)
-
387. 字符串中的第一个唯一字符 (First Unique Character in a String)[简单] at 2020年06月02日
class Solution: def firstUniqChar(self, s: str) -> int: """ 遍历字符串中的字符,如果满足以下两个条件,则返回idx 1. 该字符不存在于 s[:idx] 2. 该字符不存在于 s[idx + 1:] :param s: :return: """ for idx, c in enumerate(s): if c not in s[idx + 1:] and c not in s[:idx]: return idx return -1
-
383. 赎金信 (Ransom Note)[简单] at 2020年06月01日
class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: a = list(ransomNote) b = list(magazine) try: for i in a: b.remove(i) return True except: return False
-
374. 猜数字大小 (Guess Number Higher or Lower)[简单] at 2020年05月31日
# The guess API is already defined for you. # @param num, your guess # @return -1 if my number is lower, 1 if my number is higher, otherwise return 0 # def guess(num: int) -> int: class Solution: def guessNumber(self, n: int) -> int: lo, hi = 1, n while lo < hi: mid = lo + ((hi - lo) >> 1) if guess(mid) > 0: lo = mid + 1 else: hi = mid return lo