- 博客(405)
- 资源 (1)
- 收藏
- 关注
原创 滑动窗口刷题指南
给你一个字符串 s 、一个字符串 t。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “”。给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。换句话说,s1 的排列之一是 s2 的 子串。
2023-04-14 16:37:20 701 1
原创 二叉树刷题指南
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。所以结果应当返回修剪好的二叉搜索树的新的根节点。给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。
2023-04-07 12:23:30 639
原创 基于Istio的高级流量管理二(Envoy流量劫持、Istio架构、高级流量管理)
Istio对入站流量、Mesh流量、出站流量的统一控制管理给出了一个比较完美的答案
2023-02-26 16:18:21 2219 1
原创 基于Istio的高级流量管理一(为什么需要服务网格?深入理解Envoy)
Service Mesh是微服务治理的一种框架,而Istio是云原生中微服务治理的最佳实践
2023-02-24 00:15:46 935
原创 Gin框架(一):基础概览
文章目录一、Gin框架介绍二、Gin框架安装与使用1、安装2、示例三、RESTful API四、Gin渲染1、HTML渲染2、自定义模板函数3、静态文件处理4、使用模板继承5、 补充文件路径处理6、JSON渲染五、获取参数1、获取querystring参数2、获取form参数3、获取json参数4、获取path参数5、参数绑定(推荐, 兼容以上所有)六、文件上传1、单个文件上传2、多个文件上传七、重定向1、HTTP重定向2、路由重定向八、Gin路由1、普通路由2、路由组3、路由原理九、Gin中间件1、定义中
2022-01-09 15:56:02 5023 2
原创 Go语言基础(十四):单元测试
文章目录一、Go Test工具二、测试函数1、测试函数示例2、测试组3、子测试4、测试覆盖率三、基准测试1、基准测试函数格式2、基准测试示例2、性能比较函数3、重置时间4、并行测试三、Setup与TearDown1、TestMain2、子测试的Setup与Teardown四、示例函数1、示例函数的格式2、示例函数示例在我看来,一位合格的程序猿,应当是开发(主),测试、网络、基础运维都有一定的知识积累的,这样你的思维才不会局限于开发的固有视野中,而是从一个全局视野去思考,解决问题。因此今天我们来学习一下,基
2022-01-01 15:52:16 501
原创 Go语言基础(十三):网络编程
文章目录一、实现TCP通信1、TCP协议2、TCP服务端3、TCP客户端4、TCP粘包(1)为什么会出现粘包?(2)解决方法二、实现UDP通信1、UDP协议2、UDP服务端3、UDP客户端网络基础、socket编程就不普及了,对我来说,真的是老油条的概念了。python网络编程入门篇、进阶篇一、实现TCP通信1、TCP协议TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于
2021-12-26 18:51:02 256
原创 Go语言基础(十二):并发编程
文章目录一、前言二、goroutine1、使用goroutine2、启动goroutine示例3、main优雅谢幕(sync.WaitGroup)三、goroutine与线程1、可增长的栈2、goroutine调度3、GOMAXPROCS四、channel1、channel类型2、创建channel3、channel操作(1)发送(2)接收(3)关闭4、无缓冲的通道5、有缓冲的通道6、for range从通道循环取值7、单向通道8、通道总结五、worker pool(goroutine池)六、select多
2021-12-25 18:09:59 1978
原创 Go语言基础(十一):反射
文章目录一、前言1、变量的内在机制2、反射介绍3、reflect包二、TypeOf1、基本使用2、type(name、kind区别)三、ValueOf1、通过反射获取值3、通过反射设置变量的值4、isNil()和isValid()(1)isNil()(2)isValid()四、结构体反射1、与结构体相关的方法2、与结构体相关的方法3、结构体反射示例五、写在最后( 反射是把双刃剑)一、前言常用于从未知的数据结构中去获取想要的数据。主要在协同开发中,通过调用其他人的写的api获取数据时使用。1、变量的内在
2021-12-23 22:02:59 325
原创 Go语言基础(十):接口
文章目录一、为什么要用接口?二、接口的定义三、实现接口的条件四、接口类型变量五、值接收者和指针接收者实现接口的区别1、值接收者实现接口2、指针接收者实现接口3、面试题六、类型与接口的关系1、一个类型实现多个接口2、多个类型实现同一接口七、接口嵌套八、空接口1、空接口的定义2、空接口的应用(1)空接口作为函数的参数(类似范型?)(2)空接口作为map的值3、类型断言在Go语言中接口(interface)是一种类型,一种抽象的类型。interface是一组method的集合,是 鸭子类型 、多态性(其实go
2021-12-23 21:55:59 497 2
转载 while read line中执行ssh出现只执行一次
Linux专栏收录该内容1 篇文章0 订阅订阅专栏今天在写脚本统计大数据组的所有主机的ssd盘的挂载点位置的时候,先将主机名先写好在一个文本中,然后在脚本中循环读取主机名,然后使用ssh远程执行命令,发现只执行一次就退出了,但是把ssh远程命令注销之后可以完整的将while循环执行完毕。参考:http://bbs.chinaunix.net/thread-3582099-1-1.htmlhttps://blog.csdn.net/eclipse_c/article/details/5191211
2021-10-22 10:45:34 545
原创 前缀和相关:区域和检索 - 数组不可变、二维区域和检索 - 矩阵不可变...
给定一数组A。前缀和:新建一数组B,数组中每一项B[i]保存A中[0…i]的和;后缀和:新建一数组B,数组中每一项B[i]保存A中[i…n-1]的和;前缀积:新建一数组B,数组中每一项B[i]保存A中[0…i]的积;后缀积:新建一数组B,数组中每一项B[i]保存A中[i…n-1]的积;一、区域和检索 - 数组不可变class NumArray: def __init__(self, nums: List[int]): self.sums, pre = [0],
2021-03-01 00:39:40 216
原创 多线程相关:按序打印、交替打印FooBar、交替打印字符串
文章目录一、按序打印二、交替打印FooBar三、交替打印字符串(不懂)一、按序打印from threading import Lockclass Foo: def __init__(self): self.firstJobDone = Lock() self.secondJobDone = Lock() self.firstJobDone.acquire() self.secondJobDone.acquire() #
2021-02-17 20:21:52 324 1
原创 布隆过滤器及LRU Cache的实现
文章目录一、Bloom Filter二、LRU Cache1、OrderedDict实现2、哈希 + 双向链表(面试建议)一、Bloom Filter它是什么?:一个很长的二进制向量和一系列随机映射函数。用途:布隆过滤器可以用于检索、一个元素是否在一个集合中。优点:是空间效率和查询时间都远远超过一般的算法,缺点:是有一定的误识别率和删除困难。from bitarray import bitarrayimport mmh3class BloomFilter: def __in
2021-02-11 14:53:41 439
原创 位运算相关:2的幂、翻转图像、颠倒二进制位、N皇后II、比特位计数 ...
文章目录一、位1的个数二、2的幂三、颠倒二进制位(经典)四、N皇后II一、位1的个数class Solution: def hammingWeight(self, n: int) -> int: count = 0 while n: n = n & (n - 1) count += 1 return count二、2的幂class Solution: def isP
2021-02-10 22:40:29 434 2
原创 排序相关:数组的相对排序、最小的k个数(快排)、合并区间、翻转对 ...
文章目录一、数组的相对排序(计数排序)二、合并区间(单纯排序)三、最小的k个数(快排)四、翻转对(归并排序)一、数组的相对排序(计数排序)# 我们使用tmp数组对arr1中每个元素进行计数排序# 然后遍历arr2先把这个顺序的元素依次存入res,并把tmp中当前存入元素的值改为0# 最后遍历tmp数组,把剩下元素按升序存进resclass Solution: def relativeSortArray(self, arr1: List[int], arr2: List[int]) -&g
2021-02-09 20:31:46 312
原创 九大排序算法详解
文章目录一、选择排序二、插入排序(链表实现)三、冒泡排序四、快速排序五、归并排序六、堆排序一、选择排序小凰凰是个不甘平凡的人,因此选择排序、冒泡排序的实现,也不愿采用随大流的双层循环的设计,因此使用了递归去实现!# 核心思想:其实就是对外层循环使用递归替代了,多了一个start参数去控制import mathdef choice_sort(nums, start): # terminator if start == len(nums) - 1: return nums
2021-02-09 11:00:28 388
原创 字典树、并查集相关:实现Trie、搜索推荐系统、朋友圈、被围绕的区域(未做) ...
文章目录一、字典树1、实现Trie2、单词搜索3、单词搜索II4、搜索推荐系统二、并查集1、省份数量2、岛屿数量3、被围绕的区域(暂时不会)一、字典树1、实现Trieclass Trie: def __init__(self): """ Initialize your data structure here. """ self.root = {} self.END_OF_WORD = '#' def
2021-02-07 23:28:52 338 1
原创 动态规划套题:零钱兑换、完全平方数
一、零钱兑换1、自顶向下class Solution: def coinChange(self, coins: List[int], amount: int) -> int: memo = {} def dp(n): # 记忆化查表 if n in memo: return memo[n] # 两个递归终止条件 if n == 0: return 0
2021-02-06 01:23:58 216
原创 动态规划套题:不同路径
文章目录一、不同路径1、自顶向下2、自底向上3、组合数学二、不同路径II1、自顶向下2、自底向上一、不同路径1、自顶向下class Solution: def uniquePaths(self, m: int, n: int) -> int: # dp 自顶向下 dp = [[0 for _ in range(n)] for _ in range(m)] def dfs(i,j): if i >= m or
2021-02-04 22:32:23 259
原创 动态规划相关:三角形最小路径和
文章目录一、爬楼梯1、自顶向下2、自底向上二、三角形最小路径和1、自顶向下2、自底向上三、完全平方数一、爬楼梯题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。1、自顶向下class Solution: memo = {1:1,2:2} def climbStairs(self, n: int) -> int: # dp 自顶向下 -> 记忆化递归
2021-02-04 22:30:04 326
原创 二分查找相关:x的平方根、搜索旋转排序数组、搜索二维矩阵 ...
文章目录一、x的平方根1、二分查找法2、牛顿迭代法二、搜索旋转排序数组1、还原数组+二分查找(不推荐)2、二分查找三、寻找旋转排序数组中的最小值四、搜索二维矩阵一、x的平方根建议: 再做下leetcode中的有效的完全平方数一题!1、二分查找法class Solution: def mySqrt(self, x: int) -> int: l, r = 0, x while l <= r: mid = (l + r)//2
2021-02-02 21:46:46 312
原创 贪心相关:柠檬水找零、买卖股票的最佳时机、分发饼干、跳跃游戏 ...
文章目录一、柠檬水找零二、买卖股票的最佳时机三、买卖股票的最佳时机II四、分发饼干五、模拟行走机器人(困难)六、跳跃游戏七、跳跃游戏II(困难)一、柠檬水找零注意:是按顺序收取,不是先把所有钱都收上来,然后再给别人分别找钱class Solution: def lemonadeChange(self, bills: List[int]) -> bool: five = ten = 0 for i, v in enumerate(bills):
2021-02-01 19:30:51 212
原创 DFS、BFS相关:二叉树的层序遍历、岛屿数量、扫雷游戏、单词接龙 ...
文章目录一、二叉树的层序遍历1、BFS + 二元组记录level2、BFS二、最小基因变化三、括号生成四、在每个树行中找到最大值五、岛屿数量六、扫雷游戏七、单词接龙八、单词接龙ii一、二叉树的层序遍历1、BFS + 二元组记录levelclass Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: if not root: return [] deque, res = co
2021-01-28 22:02:43 329 1
原创 分治与回溯相关:Pow(x,n)、多数元素、至少有K个重复字符的最长子串、N皇后 ...
一、Pow(x,n)题目:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。class S
2021-01-27 13:29:34 366
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人