自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 最近学习或用到的一些设计模式

go单例模式type singleton struct { }var instance *singletonvar once sync.Oncefunc GetInstance() *singleton { once.Do(func() { instance = new(singleton) }) return instance}饿汉模式type singleton struct {}var instance *singleto.

2021-07-15 16:43:40 134

原创 子串,子数组问题---滑动窗口

/* 滑动窗口算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (char c : t) need[c]++; int left = 0, right = 0; int valid = 0; while (right < s.size()) { // c 是将移入窗口的字符 char

2021-07-15 15:27:40 165

原创 数据结构与算法专题汇总(十)二叉树基础

1. 概念父节点,子节点,兄弟节点根节点,叶子节点高度:从下往上数的高度,即节点到叶子节点的最长路径深度:从上往下数,看看有多深。即根节点到该结点经历的边数层数:深度+1,即从1开始树在第几层树的高度:根节点的高度二叉树,满二叉树,完全二叉树** 存储 **链式存储class BiTreeNode{ def __init__(self,data,left,right): self.data = data self.left = left self.right = righ

2021-05-06 15:23:53 147

原创 数据结构与算法专题汇总(九)散列表,冲突避免,分布式系统中运用,一致性哈希算法

数据按照下标随机访问数据的特性键值+散列函数+散列值散列函数得到的散列值是非负整数key1 == key2 : hash(key1)==hash(key2)key1 != key2: hash(key1) != hash(key2)标题散列冲突:1.开放寻址法线性探测某个数据经过散列后,发现存储位置已经被占用,从当前位置往后找,直至找到空闲位置。删除时:不能直接删除,否则可能导致之后的数据查找截断。可以把该位置标为deleted缺点:随着数据增多,复杂度可能退化为O(n)优化:二

2021-04-25 18:22:53 302

原创 数据结构与算法专题汇总(八)二分查找,查找元素第一个位置和最后一个位置,搜索旋转排序数组,跳表

非递归实现def bsearch(nums,n,value): low = 0 high = n-1 while low<=high: mid = low+(high-low)/2 if nums[mid]==value: return mid elif nums[mid]<value: low = mid+1 else: high = mid-1 return -1注意:**循环退出条件 low <= high **mid取值 (lo

2021-04-16 00:46:21 201

原创 数据结构与算法专题汇总(五)堆排序

堆1. 什么是堆一棵完全二叉树:除了最后一层,其他层的节点个数都是满的堆中每一个节点的值都必须大于等于(小于等于)其子树中每个节点的值2.如何实现一个堆完全二叉树:适合用数组存储数组中下标为i的节点的左子节点,是下标为2i的节点;右子节点是下标为2i+1的节点,父节点是i/2的节点。往堆中插入一个元素删除堆顶元素把最后一个节点放到堆顶,再从上往下进行堆化插入删除都是O(logn)3.如何基于堆实现排序建堆思路一:在堆中插入一个元素的思路思路二:从后往前处理数据,每

2020-09-20 23:49:50 160

原创 数据结构与算法专题汇总(五)排序,桶排序,计数排序,基数排序

1.桶排序将数据分到几个有序的痛刘辩,每个桶里的数据用快排,之后再把每个桶里的数据依次取出。要求:1.排序的数据很容易划分为m个桶,这些桶之间有着大小顺序2.数据在各个桶中分布较均匀3.适合用于外部排序:数据存储在外部磁盘中,数量比较大,内存有限,无法将数据全部加载到内存举例:比如说我们有 10GB 的订单数据,我们希望按订单金额(假设金额都是正整数)进行排序,但是我们的内存有限,只有几百 MB,没办法一次性把 10GB 的数据都加载到内存中。这个时候该怎么办呢?1.扫描一遍文件,看订单金

2020-09-20 20:42:39 156

原创 数据结构与算法专题汇总(七)队列的leetcode题:滑动窗口最大值,二叉树平均值,栈实现队列,队列实现栈

1.滑动窗口最大值给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。解题思路:用双端队列解决,窗口移动时,将要进入窗口的数字若是比队列尾的数字大,则当前数字将会是这个窗口下的最大数字,队列尾的数字可以移除;若小,则直接加入队列尾,因为它可能比之后的数字都大,在后面的便利中会成为最大值。当窗口移动到有k个数字后,就可以将队列头push到res里边,作为当前窗口下的最大数字。

2020-09-15 22:43:46 164

原创 数据结构与算法专题汇总(七)队列的python实现,循环队列判满,阻塞队列和并发队列,线程池

1.队列先进先出:入队enqueue(),出队dequeue()同栈一样,是一种操作受限的线性表数据结构数组实现队列:顺序队列链表实现队列:链式队列//python顺序队列class queue: def __init__(self): self.queue = [] def enqueue(self, item): self.queue.append(item) def dequeue(self): return se

2020-09-13 18:09:59 527

原创 数据结构与算法专题汇总(六)栈的应用和代码实现:最小栈,比较含退格的字符串,下一个更大元素

1.最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。解题:两个栈,一个栈存储数字,一个栈存储当前的最小数,在进行push和pop时分别对两个栈进行操作class MinStack: def __init__(self): """ initialize yo

2020-09-13 16:27:07 155

原创 数据结构与算法专题汇总(六)栈,python实现栈,栈的应用和代码实现:函数调用,表达式求值,括号匹配,浏览器前进与后退

1.栈操作受限的线性表,只能在一端插入和删除数据。数组实现栈:顺序栈链表实现栈:链式栈#python实现顺序栈class ArrayStack: def __init__(self,n): self.stack = [] self.limit = n self.count = 0 def push(self,item): if self.count == self.limit: return

2020-09-13 15:22:51 357

原创 ubuntu18.04 K8s集群超简单成功搭建!!笔记

1. 所有主机节点上都需要安装docker借鉴;[https://blog.csdn.net/b9567/article/details/105027440/](https://blog.csdn.net/b9567/article/details/105027440/)$ sudo apt-get update安装 apt 依赖包,用于通过HTTPS来获取仓库$ sudo apt-get install \ apt-transport-https \ ca-certificate

2020-09-10 00:32:47 774

原创 linux笔记整理

2.sudo passed root 创建root用户密码su 就可以到root用户

2020-09-09 22:14:16 162

原创 数据结构与算法专题汇总(五)排序,冒泡排序,插入排序,选择排序,最小k个数,面试题:n组数据找最小m个数

一. 常见排序算法排比较序算法时间复杂度是否基于比较冒泡,插入,选择O(n^2)✅快排,归并O(nlogn)✅桶,计数,基数O(n)❌分析排序算法执行效率:比较次数,交换次数内存消耗:原地排序??稳定性二. 常见算法原理及实现1.冒泡排序每一轮比较选出最大值放置在排序位置上当一轮不出现交换的时候,表示数据已排序完毕,所以可设置一个哨兵,判读当前本轮是否有交换的情况。def bubbleSort(numbers,length):

2020-08-23 17:29:21 374

原创 数据结构与算法专题汇总(四)递归,台阶问题,递归防止栈溢出,利用散列表避免重复计算,

1.递归条件一个问题的解可以分为子问题的解分解后的子问题,与原问题的解题思路一致,数据规模不一致存在递归终止条件写出递归公式和终止条件!!!写出递归公式和终止条件!!!写出递归公式和终止条件!!!2.举例台阶问题:假如这里有 n 个台阶,每次你可以跨 1 个台阶或者 2 个台阶,请问走这 n 个台阶有多少种走法?如果有 7 个台阶,你可以 2,2,2,1 这样子上去,也可以 1,2,1,1,2 这样子上去,总之走法有很多,那如何用编程求得总共有多少种走法呢?解答:可以根据第一步的走法

2020-08-23 11:02:49 280

原创 数据结构与算法专题汇总(三)链表相关leetcode题目(链表反转,链表合并,快慢指针的用法:找中间结点,环的检测,回文判断,删除倒数第n个结点)

1.链表反转链表反转就是将结点的pre赋值给当前结点的next的过程,其中注意不要丢失指针class ListNode: def __init__(self,x): self.val = x self.next = Noneclass Solution: def reverseList(self, head: ListNode) -> ListNode: cur = head pre = None while(cur):

2020-08-11 23:29:26 197

原创 数据结构与算法专题汇总(三)链表(时间复杂度比较,链表vs数组,LRU应用,链表相关题目技巧)

链表通过指针将一组零碎的内存块串联起来1.单链表插入,删除:O(1)不支持随机访问2.循环链表3.双向链表空间换时间找前驱结点O(1)4.时间复杂度比较删除结点中“值等于某定值”的结点:查找:O(n),删除O(1)删除结点中指定结点指向的结点单向:O(n) 找前驱双向:O(1)5.数组vs链表操作数组链表插入/删除O(n)O(1)随机访问O(1)O(n)数组,连续存储空间,CPU缓存机制预读数据效率高;链表CPU缓存不友好

2020-08-11 17:24:50 393

原创 数据结构与算法专题汇总(二)数组(连续空间,提高删除效率,JVM垃圾回收应用)

1.特性1.线性表数据结构2.一组连续的存储空间3.一般存储具有相同类型的数据数据适合查找其实不是正确的说法,因为数组查找用二分查找时间复杂度也是o(logn),准确的说法应该是数据支持随机访问线性表:数据,链表,栈,队列非线性表:树,图连续的存储空间:数组为什么从0开始?连续的存储空间是指,数组的数据存储在内存中是连续的a[I]_address = base_address + I *data_type_size其中数据的下标i就为偏移地址,这也是为什么地址从0开始的原因数组越界对

2020-08-11 16:46:17 275

原创 数据结构与算法专题汇总(一)复杂度分析(均摊时间复杂度)

1.基础介绍1.数据结构一组数据的存储结构2.算法操作数据的一组方法2.复杂度分析2.1.时间复杂度多项式量阶复杂度非多项式量阶复杂度常量阶 O(1)指数阶 O(2^n)对数阶 O(logn)阶乘阶 O(n!)线性阶 O(n)线性对数阶 O(nlogn)平方阶 O(n^2) 立方阶O(n^3) k次阶。。。非多项式量阶的问题为非确定多项式问题,即NP问题O(1) 即代码的执行时间与n无关,执行此处往往是一个确定值,算法中不存在循环

2020-08-11 15:52:06 466

原创 macos go、Goland、beego的安装配置

macos go、Goland、beego的安装配置今天一下午就在配置go的环境,因为之前直接先安装了GoLand,在Goland里边直接下载的go的sdk,下载之后一直编译,在终端输入go version发现竟然没有装上,之后好不容易装好了,再安装beego的时候又遇到了同样的问题。。。总之是要弄清楚环境变量这一个东西,特此记录。1.go的安装go的安装我直接在官网下的pkg安装包,直...

2019-11-02 19:45:22 688

原创 python学习笔记(二)列表和元组

一、列表格式 列表也可称为数组,与c语言中的数组一样,列表也是由[]和,组成,如: mumber = [1,2,3,4,5] 这就定义了一个由五个整形组成的一个列表。 但是,python的列表不会如此简单,它可以说是一个大杂烩,为何这样说呢? member = [‘Jacyn’,1,2,3.00,[1,2,3]] 这样一个包含了字符串,整形

2017-12-06 18:21:02 622

原创 python学习笔记(一)基本语法

1.print 与c语言不同的是,python的输出语句为:print(‘hello world’) 字符串的引用对双引号和单引号无要求,且无需分号 此外,一个简单的+号就可将两个字符串连接起来 print(‘hello ’ + ‘world’) 输出为:hello world 而print(‘hello ’ + 8)会报错,因为加号前后的类型不一致print(‘hello world’

2017-12-06 00:22:02 342

原创 Hibrenate入门实例

hibernate实现对数据库的增删查改

2017-09-29 16:59:03 536

原创 Spring mvc 实例详解---两种配置方式总结

以继承Controller和使用Controllere两种方法实现spring mvc

2017-09-28 18:38:00 554

原创 Spring 框架入门helloworld实例-------深入理解IOC、AOP

Spring框架中的IOC、AOP等概念详解及实现

2017-09-18 20:04:28 841

原创 IDEA,TOMCAT,MYSQL,NAVICAT,POSTMAN配置

后台开发工具

2017-08-23 16:26:29 936

原创 JAVA继承的拓展——接口和事件机制

JAVA继承的拓展——接口和事件机制为了实现代码的重用性和程序的扩展性,JAVA引用了类的继承这一方法,但是它存在着只能单个类之间继承的缺陷,为了弥补这一缺陷,这里引入了接口这一概念。接口的定义java的接口是一系列方法的声明,是一些方法特征的集合。它的关键字是interface,定义接口的方法是:public interface 接口名 extends 接口名,...{

2016-05-12 19:03:22 970

原创 代码的优化——JAVA类的继承

java类的继承

2016-05-11 17:41:54 999

空空如也

空空如也

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

TA关注的人

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