自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JaysenLeo

一个关于星辰大海的故事

  • 博客(179)
  • 资源 (12)
  • 收藏
  • 关注

原创 77_组合

给定两个整数 n 和 k,返回范围[1, n]中所有可能的 k 个数的组合。你可以按任何顺序返回答案。

2024-01-24 21:52:42 351

原创 MySQL自增主键为何不连续

自增值的存储原理MyISAM引擎的自增值保存在数据文件中InnoDB引擎的自增值,保存在内存里MySQL 8.0版本后,才有了“自增值持久化”的能力,实现了“如果发生重启,表的自增值可以恢复为MySQL重启前的值”,具体情况是,在MySQL 8.0版本,将自增值的变更记录在了redo log中,重启的时候依靠redo log恢复重启之前的值MySQL 5.7及之前版本,自增值保存在内存里,没有持久化。所以,每次重启后打开表时,都会去找当前自增值的最大值max(id),然后将max(id)+1作为

2024-01-20 22:19:04 455

原创 53_最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。

2024-01-16 23:51:27 400

原创 121_买卖股票的最佳时机

数组开始递减的时候会找最小值,这个时候如果卖,那么卖的利润在降低,只有开始递增的时候计算差值,这个时候利润在升高,这个时候买入成本在升高。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。

2024-01-16 23:19:48 340

原创 637_二叉树的层平均值

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

2024-01-16 21:50:17 394

原创 515_在每个树行中找最大值

给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。1.层遍历时记录最大值。

2024-01-16 21:30:15 388

原创 199_二叉树的右视图

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

2024-01-16 21:06:02 365

原创 103_二叉树的锯齿形层序遍历

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。利用双端队列的两端皆可添加元素的特性,设打印列表(双端队列)q。奇数层 则添加至 q 尾部。偶数层 则添加至 q 头部。

2024-01-16 20:40:31 320

原创 BFS(广度优先搜索)_层序遍历&最短路径_总结

层序遍历LeetCode 102. Binary Tree Level Order Traversal 二叉树的层序遍历(中等)LeetCode 103. Binary Tree Zigzag Level Order Traversal 之字形层序遍历LeetCode 199. Binary Tree Right Side View 找每一层的最右结点LeetCode 515. Find Largest Value in Each Tree Row 计算每一层的最大值LeetCode 637. A

2024-01-16 20:17:34 399

原创 docker命令拾遗(二)

docker run :创建一个新的容器并运行一个命令语法docker run [OPTIONS] IMAGE [COMMAND] [ARG...]OPTIONS说明:-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;-d: 后台运行容器,并返回容器ID;-i: 以交互模式运行容器,通常与 -t 同时使用;-P: 随机端口映射,容器内部端口随机映射到主机的端口-p: 指定端口映射,格式为:主机(宿主)端口:容器端口-t: 为容器重

2021-10-13 21:50:49 146

原创 go clone 大仓库导致Timeout

先拉主库git clone --depth 1 https://github.com/xxx/xxx.git在拉其他分支git fetch --depth 1 origin remote_other_branchrefgit clone --depth=1时的一些问题

2021-08-25 21:47:21 227

原创 编译时注入变量

原理golang程序在build时自动生成版本信息,使用 ./main --version可以查看版本和build时间使用链接选项-X设置一个二进制文件中可以访问的变量源码package mainimport ( "fmt" "os" "github.com/deckarep/golang-set")var version = "no version"func main() { params := os.Args[1:] if len(params) == 0 { r

2021-08-25 21:10:11 217

原创 110_平衡二叉树

// 给定一个二叉树,判断它是否是高度平衡的二叉树。// 本题中,一棵高度平衡二叉树定义为:// 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。package mainimport "math"/** * Definition for a binary tree node. */type TreeNode struct { Val int Left *TreeNode Right *TreeNode}func isBalanced(node *Tree

2021-08-25 20:17:08 114

原创 107_二叉树的层序遍历 II

package main/** * Definition for a binary tree node. */type TreeNode struct { Val int Left *TreeNode Right *TreeNode}func levelOrderBottom(root *TreeNode) [][]int { //深度优先遍历(dfs) result := make([][]int, 0) var preorder func(node *TreeNode,

2021-08-25 20:14:27 108

原创 104_二叉树的最大深度

package main/** * Definition for a binary tree node. */type TreeNode struct { Val int Left *TreeNode Right *TreeNode}func maxDepth(root *TreeNode) int { if root == nil { return 0 } l := maxDepth(root.Left) r := maxDepth(root.Right) //

2021-08-25 20:13:17 136

原创 102_二叉树的层序遍历

方法一package main/** * Definition for a binary tree node. */type TreeNode struct { Val int Left *TreeNode Right *TreeNode}// 总结: 前序遍历,遍历时记录层级,记录层级的值func levelOrder(root *TreeNode) (res [][]int) { var preorder func(node *TreeNode, depath int)

2021-08-25 20:11:17 95

原创 range切片与数组的原理

是否会出现无限循环package mainimport "fmt"func main() { v := []int{1, 2, 3} for i := range v { v = append(v, i) } fmt.Println(v)}输出[1 2 3 0 1 2]原理在遍历切片的时候,range语句声明之初,就将切片已经copy了一份,长度和内容// The loop we generate:// for_temp := range// .

2020-11-17 22:45:54 186

原创 指针问题 之 range

问题代码package mainimport "fmt"type user struct { name string sex uint // 1 男 0 女}func main() { u := []user{ {"Jansen",1}, {"Lee",1}, {"Leo Lee",0}, } n := make([]*user,0,len(u)) for _,v := range u{ n = append(n, &v) } fmt.Printl.

2020-11-17 21:40:08 205

原创 race问题

package mainimport "fmt"func main() { total, sum := 0, 0 for i := 1; i <= 10; i++ { sum += i go func() { total += i }() } fmt.Printf("total:%d sum %d", total, sum)}第一个问题 total 为不确定值(不是你想要的),因为total的写入是在协程里,并且增量i是闭包直接带入,加之协程的调度并非顺序导致

2020-11-14 14:56:56 244

原创 微服务之Go-Micro(九)服务熔断和降级 hystrix-go 初见

环境准备github.com/afex/hystrix-go/hystrix本工程源码地址在装饰器出构建熔断降级逻辑package wapperimport ( "context" "fmt" "github.com/afex/hystrix-go/hystrix" "github.com/micro/go-micro/v2/client" "github.com/micro/go-micro/v2/metadata" "go-micro-service/service/.

2020-11-14 11:06:17 525

翻译 微服务之Go-Micro(十)服务熔断和降级 hystrix-go 介绍

介绍使用说明以命令模式执行 Hystrix 代码定义依赖外部系统的业务程序逻辑(即运行外部业务逻辑的入口),将功能传递给hystrix-go系统正常时,就只会运行这个业务程序逻辑hystrix.Go("my_command", func() error { // talk to other services return nil}, nil)定义回退行为如果你想要你的外部业务代码在服务中断期间运行,那你就把第二个函数,也就是运行外部业务逻辑的入口,传给hystrix-go.

2020-11-14 10:59:23 660

原创 微服务之Go-Micro(八)基于Gin框架的Http网关

背景在单体应用时代,客户端向后端服务器发起请求来获取数据。负载均衡器将请求路由给后端的集群服务的某一个,然后后端服务器程序会从DB获取数据返回给客户端。微服务架构下,单体应用被切割成多个微服务,如果将多个微服务直接对外暴露,肯定会出现诸多问题客户端的请求报文和微服务暴露的API不匹配,协议可能都不一样,有的是二进制的rpc,也可能使用某种消息传递协议微服务难以重构,为了满足需求合并或者重构服务势必导致开发成本因此,微服务网关应运而生需求描述客户端向基于Gin框架构建Http网关发起.

2020-11-10 23:47:17 1507 1

原创 微服务之Go-Micro(七)装饰器Wrapper

Clientpackage mainimport ( "context" "fmt" "github.com/micro/go-micro/v2" "github.com/micro/go-micro/v2/client" "github.com/micro/go-micro/v2/metadata" "github.com/micro/go-micro/v2/registry" "github.com/micro/go-micro/v2/registry/etcd" Models.

2020-11-09 22:53:55 384

原创 微服务之Go-Micro(六)GRPC调用

工具下载protobufhttps://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protoc-3.13.0-win64.zipWindow 下安装:Linux 安装tar -xvf protobufcd protobuf./configure --prefix=/usr/local/protobufmakemake checkmake install如遇报错,则需升级gcc:e.

2020-11-08 22:22:32 460

原创 微服务之Go-Micro(五)指令方式启动多个服务

Server 源码package mainimport ( "fmt" "github.com/gin-gonic/gin" "github.com/micro/go-micro/v2/registry" "github.com/micro/go-micro/v2/registry/etcd" "github.com/micro/go-micro/v2/web")// 全局中间件func GlobalMiddle(c *gin.Context) { fmt.Println(".

2020-11-08 22:22:20 674

原创 微服务之Go-Micro(四)如何构造一个微服务集群中的Client

Etcd 注册中心访问http://127.0.0.1:8082/service/user如下源码package mainimport ( "fmt" "github.com/micro/go-micro/v2/client/selector" "github.com/micro/go-micro/v2/registry" "github.com/micro/go-micro/v2/registry/etcd" "log")func main() { reg :.

2020-11-08 22:21:59 261

原创 微服务之Go-Micro(三)把服务注册到ETCD中

服务注册由于单体应用演进为微服务集群,那么服务的管理即注册和发现应运而生,由此微服务的角色成了 服务提供者(Server)、服务消费者(Client)和服务注册中心(Registry)微服务(Server)在启动时,将自己的网络地址等信息注册到注册中心,注册中心负责存储和维护这些数据。服务消费者(Client)从注册中心查询服务提供者的地址,并通过该地址调用服务提供者的接口。每个微服务与注册中心使用一定机制通信(例如心跳)。如果注册中心与某微服务长时间无法通信,就会注销该实例。微服务网络地.

2020-11-08 22:21:48 849

原创 微服务之Go-Micro(二)Gin管理微服务的API

环境准备Go语言版本golang 1.14依赖库 go-microgo get -u github.com/gin-gonic/gin源码package mainimport ( "github.com/gin-gonic/gin" "github.com/micro/go-micro/v2/web")func main() { router := gin.Default() router.Handle("GET", "/", func(context *gin.

2020-11-08 22:21:34 691

原创 微服务之Go-Micro(一)如何构造一个微服务集群中的Server

环境准备Go语言版本golang 1.14依赖库 go-microgo get -u github.com/micro/micro/v2源码在这里插入代码片package mainimport ( "github.com/micro/go-micro/v2/web" "net/http")func main() { server:=web.NewService(web.Address(":8001")) server.HandleFunc("/", func.

2020-11-08 22:21:20 321 1

转载 “努力就会成功”

我们学计算机当程序员最大的福气不是可以到大公司里加班和996,而是我们生活在了第三次工业革命的信息化时代,这才是最大的福气,所以,我们应该努力地提升自己,而不是把自己当劳动力一样的卖了!在这样的一个时代,你要做的不是通过加班和拼命来跪着挣钱,而是通过技能来躺着挣钱

2020-05-05 12:04:01 231

原创 (十) Angular 8 响应式开发 --RXJS 资源集合(二)

官网: https://rxjs.dev/guide/overview中文手册 https://cn.rx.js.org/manual/index.html

2020-05-02 23:41:57 275

原创 (九) Angular 8 响应式开发 --RXJS(一)

可观察对象用法实战输入提示(type-ahead)建议可观察对象可以简化输入提示建议的实现方式。典型的输入提示要完成一系列独立的任务:从输入中监听数据。移除输入值前后的空白字符,并确认它达到了最小长度。防抖(这样才能防止连续按键时每次按键都发起 API 请求,而应该等到按键出现停顿时才发起)如果输入值没有变化,则不要发起请求(比如按某个字符,然后快速按退格)...

2020-05-02 23:26:49 379

原创 (十)python 设计模式 --- 适配器模式

背景当我们把异构组件用于另一个系统中,不对代码进行任何修改的仍然能进行通信的情况很少见。但又并非总是能修改该组件代码。如果是外部提供的组件,修改代码也不切实际。此时我们可以编写一个额外的代码层,该代码层让异构组件接口和调用端结构能够通信。适配器模式(Adapter pattern) 结构性设计模式,帮助我们实现不兼容接口之间的兼容原则不要求访问他方接口的源代码不违反开放/封...

2020-05-02 23:08:08 318

原创 (九)python 设计模式 --- 亨元模式

背景一个对象的创建,玩玩伴随着一定的开销,性能问题也将不得不面对。一个大型复杂系统,当需要创建大量的同时段并存的对象时,资源受限将是个问题。因为从理论上讲,当我们创建一个对象时,往往需要分配额外的内存,虽然现在的操作系统对内存的管理大都是基于虚拟内存的理论,理论上有超出硬件内存容量的内存空间。但实际一个系统如果耗尽了所有的物理内存,就会开始将内存页替换到二级存储设备,往往是硬盘,这个样的...

2020-05-02 18:16:24 291

原创 如何解决邮件中通过http链接展现在邮件正文的媒体资源访问不到的问题(python)

背景当面临,所处开发、测试和生产环境面临各种墙的情况下,邮件中附带的超文本链接的资源在邮件发送后,邮件接收者因为自身所处的接收端的网络条件限制(例如,外网访问内网资源),而访问不到的情况。如下跨墙解决方式或许能够给您一些参考解决方案如果无法访问资源是图片形式,可将图片转成base64的形式<img src="data:image/png;base64, ****"/>替换邮件正...

2020-02-23 02:03:04 484

原创 (八) Angular 8 开发必备清单--proxy配置文件代理

代理到后端服务器你可以使用 webpack 开发服务器中的代理支持来把特定的 URL 转发给后端服务器,只要传入 --proxy-config 选项就可以了。 比如,要把所有到 http://localhost:4200/api 的调用都转给运行在 http://localhost:3000/api 上的服务器,可采取如下步骤。在项目的 src/ 目录下创建一个 proxy.conf.json...

2020-01-04 15:38:34 2709

原创 iframe与宿主页面的通信问题

1. 利用 sessionStorage 进行相对安全的通信(localStorage)保存数据语法:sessionStorage.setItem("key", "value");读取数据语法:var lastname = sessionStorage.getItem("key");删除指定键的数据语法:sessionStorage.removeItem("key");...

2020-01-04 15:19:40 1074

原创 Python雾里看花-链式调用

# -*- coding: utf-8 -*-class SuperTupl(tuple): def to_lis(self): return list(self) def to_dic(self, set_key=0): a = {str(val[set_key]): val for val in self} return...

2019-07-27 22:37:32 239

原创 Git报错- 【refusing to merge unrelated histories】

To git@service1:/srv/Service/.gitremote: error: You can set 'receive.denyCurrentBranch' configuration variable to ! refs/heads/master:refs/heads/master [remote rejected] (branch is currently ...

2019-04-30 20:41:37 438

原创 docker命令拾遗(一)

docker 管理命令docker systemdocker system df 显示docker容器与镜像的磁盘使用情况docker system events 获取实时事件docker system info 显示系统相关的信息docker system prune 删除无用数据磁盘清理命令 【 API 1.25 + 】docker system prune删...

2019-04-30 20:35:49 151

protobuf-3.13.0.1.zip

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。 你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。 protobuf-3.13.0.1.zip

2020-11-08

现代企业Web架构

关于当下企业Web架构的一些要点案例,,本书强调,可扩展性不仅仅是技术问题,还涉及组织、流程、架构等方方...可扩展的艺术-现代企业的Web架构、流程及组织

2018-05-29

软件包tar.gz

paramiko

2017-08-19

Linux命令手册

Linux命令手册

2017-08-19

文件系统NTFS

linux下编译ntfs文件系统 ntfs-3g

2017-08-19

C语言算法精讲

算法精讲C语言版

2017-08-18

最简单的python教程

最简单的python教程

2017-08-18

Django从入门到高级

Django的从入门到高级实战

2017-08-18

树莓派入门指南

超级入门

2017-08-18

liunx文件系统编译包

windows文件系统的编译包可在liunx中编译.tgz

2017-08-06

数据结构C语言版

数据结构PDF

2017-08-05

空空如也

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

TA关注的人

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