自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 问答 (2)
  • 收藏
  • 关注

原创 【linux基础复习】

1. 什么是linux?linux是一种操作系统,类似我们常用的windows系统。操作系统是对硬件资源的一种抽象,提供用户对硬件资源调用的接口。一般来说linux提供指令操作(也有配有界面的系统),而windows提供图形界面操作。关于linux的目录结构参考知乎:https://zhuanlan.zhihu.com/p/108932753对比举例:(1) 执行程序:windows: 双击应用程序lunux:【指令名】 应用名 例: python3 test1.py 执行名为te

2020-09-02 19:20:55 242

原创 【python数据类型底层原理】

python 有动态的数据类型x=1 x='ssss'这样的赋值可以连续操作而不报错。因为变量内部= 值信息 + 类型额外信息 —> 动态数据类型1 整型python基于C编写,每一个对象都是伪C的语言结构体整型 为一个指针 指向一个C的结构体struct _longobject { long ob_refcnt; PyTypeObject *ob_type; size_t ob_size; long ob_digit[1];};ob_

2020-07-30 23:46:27 622

原创 L5服务器(负载均衡服务器)

前身 CMA 动态负载均衡服务器 微服务的概念改进后 L5包括:负载均衡技术:可观测指标(CPU,网络,内部统计等)转化为0-100的数值表示空闲处理能力。过载保护技术:时间片内的访问作为统计单位,平均延时,成功率作为下一个时间片内的请求参照。收集x时间片后端服务响应成功延时信息 判断x+1时间片对前端的处理质量是否适合继续服务响应结果失败增大,降低访问量根据之前的成功率增加下一时刻请求 可以减少故障可能性(类似于TCP慢启动,拥塞避免)过服务故障失败率高,周期得当的情况下,迅

2020-07-27 17:32:35 1559

原创 金融数据库TDSQL

tdsql三层:网关层: 路由表 + 解析mysql(类似无状态的server)存储层:真实的mysql,添加agent用以容灾备份数据切换控制层:zookeeper用以存储状态,加一个keeper用以进行调度扩容:水平扩容垂直扩容谁扩容扩容到哪怎么扩一般来说 CPU打到了100的话,扩容整张表出去。如果记录太多,分裂扩容后,cache生成唯一key(node的hash)可以使用QQ号作扩容,使数据均匀插播一条 mysqlbinbinlog数据库的二进制文件,记录用户对数据库

2020-07-16 18:57:52 392

原创 【redis深度历险】基础篇

操作:set k vget k return vmset k1 v1 k2 v2mget k1 k2 k3 return list数据结构:string list(链表) hash set zsetstring:K-V形式代表常见用途:缓存用户信息,json序列化为字符串,缓存到redis;取信息反序列化新建的string的capacity一般是高于len的;小于一M时扩容加倍,超过1M 扩容+1M,最大长度为512M设置过期时间:setex k time vexp

2020-07-01 17:09:48 92

原创 【docker】部署安装坑

按照教程发现docker无法启动方案步骤:1 yum update更新linux内核包2 重新安装docker后启动:报错防火墙的问题解决方案:vim /etc/sysconfig/docker修改option中配置为 False3 重启报错解决方案:新增用户组4 重启报错解决方案:需要一个docker0的桥接网络5重启成功...

2020-06-29 17:11:39 122

原创 高性能mysql_高性能索引

索引基础:索引类型索引在存储引擎层(不是服务器层)B树索引:索引有效范围(以姓 名 生日 的顺序为索引):全值匹配(所有具体姓 以及其名 生日等信息)最左前缀(仅姓为索引)匹配列前缀(姓索引列的开头字母等 J%这样的)匹配范围值(姓索引列的范围 比较 BOB 到 JACY之间)精准前列 范围后列(姓精准 名范围)只访问索引的查询(覆盖索引???)规则:1 最左前2 范围查询后的匹配无法使用索引哈希索引:每一个键值对 对应一个哈希码,哈希索引将所有哈希码存在索引中,

2020-06-24 20:29:17 71

原创 【go语言圣经】 go数据结构

Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型基础类型:数字,字符串,布尔型复合类型:数组,结构体引用类型:指针,切片,字典,函数,通道整型:int8 16 32 64uint无符号数o := 0666fmt.Printf("%d %[1]o %#[1]o\n", o) // "438 666 0666"x := int64(0xdeadbeef)fmt.Printf("%d %[1]x %#[1]x %#[1]X\n", x)// Output:// 37359

2020-06-24 15:00:04 191

原创 【go语言圣经】程序结构

声明:var 变量const 常量type 类型func 函数实体var name (type)/(= …)int型 初始值 0bool型初始值 false字符串型初始值 “”接口或者引用类型(slice map chan function)初始值为nil可以连续声明包级别 变量在main入口执行前完成初始化,局部变量在执行到时候初始化// Package tempconv performs Celsius and Fahrenheit temperat

2020-06-15 15:36:40 121

原创 【go语言圣经】 初识 go

运行:pkg main 中的main方法为执行入口var 命名变量以及类型:=可以快速赋值关键代码:// Fetchall fetches URLs in parallel and reports their times and sizes.package mainimport ( "fmt" "io" "io/ioutil" "net/http" "os" "time")func main() { start := time.

2020-06-11 20:53:34 157

原创 高性能mysql_schema/数据优化

建立表时的字段设计优化查询数据类型大小优先选择更小的数据类型,使用的硬盘,内存,cpu资源将会更小。选择不会超过范围的最小类型。简单数据类型简单数据类型需要更少的CPU周期,整型比字符操作代价低例如:timestap或者datetime存储时间,不用字符串;整型存储IP,不用字符串避免使用null值使用null对于索引 索引统计 值比较都更复杂,可以为null的列通常需要更多存储空间,作为索引时,每个记录需要一个额外的字节。设置为not null可以提升性能较小,设计时需要避免。

2020-06-10 21:48:32 154

原创 GIT底层理解

GIT多用来做版本控制的工具数据结构分为:git仓库:文本(blob)treecommithead哈希树的形式(有向图)head 指针 指向一个分支commitcommit指向有文件tree,收录文件信息等再下面指向file,每个都有自己的hash值,一旦变更都会发生变化index层:缓冲层,负责add 加载新的文件树,通过commit同步到仓库的tree中 并形成新的commit版本。work目录:本机的工作目录,修改以后通过add 分支的形式新城新的文件树,然后提交入库ad

2020-05-29 19:57:33 81

原创 算法_数组前缀和处理

对于数组和的处理考虑i到j的和 为 sum(:j)-sum(:i)用来替代中间和974. 和可被 K 整除的子数组给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]提示:1

2020-05-28 18:01:31 218

原创 高性能mysql 第一章(架构与历史)

1 mysql基本架构1.1 架构三层线程 连接处理连接处理,授权认证,安全等每个客户端在服务器中有一个线程用以查询,线程轮流在CPU中运行,服务器进行线程缓存,无需为新建的连接创建或销毁线程。(新增线程池)SSL连接,然后继续验证是否具备某个特定查询的权限。查询 缓存 解析(核心)查询解析,分析,优化,缓存,内置函数(日期,时间,加密函数,math等)。夸存储引擎功能实现:存储过程,触发器,视图解析查询——创建内部数据结构(解析树)——优化(重写查询,军队表读取顺序,选择合适的索

2020-05-22 20:19:00 95

原创 操作系统【进程: 原理 调度 通信】

进程:对CPU进行的抽象与装扮。本质是程序加载到内存上。进程就是为了在cpu上实现多道编程。进程就是内存上的一片内存空间,然后等待上cpu执行。(物理程序计数器控制)物理层面:所有进程使用同一程序计数器逻辑层面:每个进程有自己的计数器,记录下一条指令在的位置(确定挂起后重新执行点的位置)多道编程cpu利用率:进程20%用cpu,80%IO单进程 80的利用率n进程 1-0.8^n ...

2020-04-27 03:46:52 187

原创 python 最大公因数(欧几里得法)以及最小公倍数

914. 卡牌分组给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:...

2020-04-07 17:10:33 1186

原创 python 容器,collections常用类型及相关用法

1 namedtuple自定义一个可以命名的tuple对象,自定义tuple数量,通过属性引用而非索引。import collectionsmytuple = collections.namedtuple('Test',['x','y'])print(mytuple)print(mytuple.x)new = mytuple(1,2)print(new)print(new.x)...

2020-03-17 20:27:14 199

原创 【python 高级编程】lambda(搭配函数), 生成器,迭代器,装饰器,静态、类方法,参数等

lambda用法:1 作为函数:def sum(a,b): return a+bsum = lambda x,y:x+ysum(a,b)#same result面试题:使用lambda将[‘1’,‘2’,‘3’]转化为inttransfer = lambda arr: [int(i) for i in arr]transfer(arr)2 初始化时赋值其他函数屏蔽...

2020-03-16 21:53:01 326

原创 top-k的应用

top-k的应用topk指的是,保存一段数据的最大或者最小的k位数,在code中或者工程中右很重要的应用。举例:查询超大量数据中 最小或者最大的 第 k位数。正常使用排序缺点:内存占用会超出正常范围相对简单的做法是,遍历K次,每次选出最小(或者最大的)数。最后返回结果缺点:时间复杂度为KN,而且需要删除原数据中的数或者要在已有数据中进行判断简化:形成一个topk的 最大堆。内部使...

2020-03-15 18:40:14 532

原创 正则表达式

特殊字符:$: 匹配字符串的结束标准。\ $ 为转移匹配(): 匹配子字符区域(确切的字符组合)*: 前面的子字符区域0或者n次(没有()的时候就匹配单个字符)+: 前面的子字符区域1或者n次.: 匹配除了\n以外任意单字符(癞子)[ : 匹配区域划分(设定的字符区间)?: 子字符区域 0或1次: 转义^: 匹配字符开始的标记|: 两项做选择{: 限定符起始限定字符:*:...

2020-03-10 19:06:01 71

原创 数据结构_单调栈及其应用

单调栈单调栈指的是 栈内元素 单调递增 或者 单调递减的栈。一般我们可以用stack来模拟栈。要维持栈的单调性,需要对新来的元素进行判定。例如:我们需要一个单调递增栈[]。如果stack为空直接填入即可。新元素时如果比栈顶元素 stack[-1] 大 则 直接append()添加即可;如果新来元素比栈顶元素stack[-1] 小 则 pop()循环直到大即可。(对于相等值的元素,...

2020-03-07 18:32:29 115

原创 *leetcode刷题_(剑指offer_滑动窗口)_57_和为s的连续数列/和为s的两个数字

面试题57. 和为s的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 ...

2020-02-27 17:22:21 105

原创 leetcode刷题_(剑指offer_归并排序)_51寻找逆序对

面试题51. 数组中的逆序对在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000解答:根据之前的经验可知 此题使用归并排序解答。1 归并使用双封闭的二分[ l ,m ] [ m+1 , r ],即能取到...

2020-02-25 05:00:42 158

原创 javase_day9_浅显认识概念(JVM, error, concurrency, web)

关于垃圾回收的一些概念问题:C艹 一般来说允许开发者对对象的生命周期以及存储空间进行设计对于java来说:在 堆 (heap) 的动态池内动态地创建对象(需要即创建)垃圾回收应运而生:自动发现对象何时不再被使用,继而销毁。基于 1 所有对象都是继承自 object2 只能以一种方式创建对象(动态地在堆上创建)异常处理:异常 是一种 对象!1 从出错地点被抛出2 被专门用来处理特...

2020-02-20 21:19:05 82

原创 leetcode刷题(剑指offer)_(二叉堆)_40最小的k个数字

面试题40. 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]解答:这是一道简单题。最简单的做法是先sort,再取前k...

2020-02-20 20:36:52 279

原创 javase_day8_generics(泛型)

泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。...

2020-02-18 22:31:17 108

原创 leetcode刷题_(剑指offer_双指针)_21奇偶排列

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。提示:1 <= nums.length <= 500001 <= nums[i] <= 10000来源:力扣(LeetCode)链...

2020-02-16 19:08:39 120

原创 ***leetcode刷题_(剑指offer_11_二分法/ 53_二分查找排序数组中的数字)

code11: 旋转数组的最小值把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0来源:力扣(LeetCode)链接:h...

2020-02-15 19:40:20 134

原创 leetcode刷题_(sort,LinkedList)_code148(链表排序)

code148: Sort ListAdd to ListShareSort a linked list in O(n log n) time using constant space complexity.Example 1:Input: 4->2->1->3Output: 1->2->3->4Example 2:Input: -1->5...

2020-02-13 21:05:23 99

原创 *leetcode刷题_(DP,recursion,tree)_code124(树的最大值path)_code136_(分裂单词)

code124: Binary Tree Maximum Path Sumnon-empty binary tree, find the maximum path sum.For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree alo...

2020-02-10 18:09:10 279

原创 *leetcode刷题(剑指offer9)_(DP)_斐波那契数列

斐波那契数列 本身就是一个递归的过程(动态规划的问题)如果求第n个数时,返回的参数是n-1以及n-2。普通的递归写法: def count(self,n):#when we use recursion, we may use one result too many times, which leads to a high complexity if n ==0: ...

2020-02-09 21:50:06 70

原创 **leetcode刷题_(DP,backtraking)_code1155(掷骰子)

CODE1155:Number of Dice Rolls With Target SumYou have d dice, and each die has f faces numbered 1, 2, …, f.Return the number of possible ways (out of fd total ways) modulo 10^9 + 7 to roll the dice ...

2020-02-09 21:03:24 2063

原创 python_链表实现以及其各种方法

##需要搞清楚,node对象属性类的关系!!!!!!!!!!!!!!??????????#class Node: def __init__(self,value=None,next=None): self.value = value ###value connects to definite value self.next = next ### nex...

2020-02-09 18:25:22 287

原创 python_树的构造_以及各种遍历方法

构造树:class TreeNode: def __init__(self,val): self.val = val self.left = None self.right = None def print_all(self): if self: print(self.val) ...

2020-02-09 18:23:23 191

原创 *leetcode刷题_(math,KA,改变思路)_code121(卖袜子)

code121:Best Time to Buy and Sell StockSay you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (i.e., bu...

2020-02-07 21:11:29 164

原创 leetcode刷题_(arr,dfs,balanced binary tree)_code105(判断是否为平衡二叉树)

code110:Balanced Binary TreeGiven a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as:a binary tree in which the left and right subtrees ...

2020-02-05 23:01:54 171

原创 ***leetcode刷题_(arr,dfs)_code79(单词寻找)

code79:Word SearchGiven a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontal...

2020-02-04 20:01:02 111

原创 ***leetcode刷题_(quicksort,dutch partition problem)_code75(颜色分类)

code75: Sort Colorsan array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we wi...

2020-02-03 20:40:48 133

原创 leetcode刷题(剑指offer)_(linkedlist)_根据中序遍历以及前序遍历显示完整链表/BST的后序遍历

解答:前序遍历:中左右中序遍历:左中右后序遍历:中右左根据 前序 可以确定root,然后在中序中可以找到 左右 子树范围。进一步递归即可找到所有点。代码:class Node: def __init__(self,value): self.value = value self.left = None self.right = ...

2020-02-01 21:17:00 161

原创 leetcode刷题(bytedance面试题)_(2darr,math)_寻找n边形的k等分点

解答:想法:遍历点,当当前遍历的长度大于平均长度时,target就在这条边上。根据之前的last_len以及现有两点的趋势(x平还是y平)来决定 target的增益以及方向(上下左右)。细节:1 为了让点遍历能回到 原点 ,在数组后面添加一个 头2 对应的生成长度数组 存储长度数据(同样要在尾部加 头),得到target点之间的长度average_len(t0到t1的长度)3 ...

2020-01-30 17:58:12 1437

空空如也

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

TA关注的人

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