自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LRU算法实现

参考算法要求首先要接受一个capacity参数作为缓存的最大容量,然后实现两个API,一个是put(key,value)方法存放键值对,另一个是get(key)方法获取对应的val,如果key不存在则返回-1。算法设计要让put和get方法的时间复杂度为O(1),cache这个数据结构需要的条件:cache中的元素必须有时序,以区分最近使用的和最久未使用的数据,当容量满了之后要删除最久未使用的那个元素腾出空间;要在cache中快速找某个key是否已经存在并得到对应的val;每次访问cache

2021-05-17 22:24:51 159

原创 回溯算法

解决回溯问题,实际上就是一个决策树的遍历过程。要思考三个问题:1.路径:也就是已经做出的选择;2.选择列表:也就是当前可以做的选择;3.结束条件:也就是到达决策树底层,无法再做选择的条件。框架模板:result = []def backtrace(路径,选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrace(路径,选择列表)

2021-05-16 19:32:37 135

原创 算法之并查集的原理及其实现

初始化假定每个节点有一个指针指向其父节点,如果是根节点的话,这个指针就指向自己。合并如果两个节点被连通,则让其中的(任意)一个节点的根节点接到另一个节点的根节点上例如:union(1,4)未优化版本public class UnionFind { private int count;//记录连通分量的数目 private int[] parent; //构造函数 public UnionFind(int n) { this.count.

2021-05-16 09:00:38 231

原创 List集合之ArrayList的使用及其底层原理

##List集合常见方法void add(int index,Object ele):在index位置插入ele元素boolean addAll(int index,Collection eles):从index位置开始将eles中的元素插入集合中Object get(int index):获取指定index位置的元素int indexOf(Object obj):返回obj在集合中首次出现的位置int lastIndexOf(Object obj):返回obj在集合中末次出现的位置Object

2021-05-15 16:22:17 142

原创 算法-滑动窗口的应用

算法-滑动窗口的应用#最小覆盖字串问题输入: S = “ADOBECODEBANC”, T = “ABC”输出: “BANC”解题思路:1.在字符串S中使用双指针中的左右指针技巧,初始化left=right=0,把索引闭区间【left,right】称为一个窗口;2.不断增加right指针扩大窗口【left,right】,直到窗口中的字符串符合要求(包含了T中的所有的字符串);3.此时,应该停止增大right,转而不断增大left指针缩小窗口【left,right】,直到窗口中的字符串不再符合

2021-05-14 22:10:49 104

原创 Java语法基础

bilibili视频参考1.Java基础1.1hello worldjava文件的名称必须和class名称保持一致一个Java文件中可以包含多个class但是public class只能有一个public static void main(String[] args)public class Hello是所有java程序的入口,如果想执行对应的java代码,必须添加如下方法main函数方法中参数列表可以有多种写法:String[] args, String [] args, String ar

2020-07-28 23:20:20 232

原创 linux操作系统入门

文章目录1.快捷键2.Linux系统目录结构3.命令4.文件权限4.1更改文件权限:4.2更改所属组:5.查找与检索5.1按文件属性查找5.2根据所有者和所属组查找5.3在文件中搜寻字符串匹配的行并输出:grep6.安装7.压缩包管理8.进程管理9.网络相关命令10.用户管理11.ftp服务器搭建---vsftpd12.nfs网络共享服务器13.ssh服务器14.scp命令(super copy)...

2020-03-26 22:18:19 162

原创 mysql入门

文章目录1.登录数据库2.如何查询数据库服务器中所有的数据库3.创建数据库4.如何选中某一个数据库进行操作5.查询某个数据库中所有的数据表6.如何创建一个数据表7.查看是否创建成功8.查看创建好的数据表的结构9.如何往数据表中添加数据记录10.查询数据表中的记录11.mysql常用数据类型12.删除数据13.如何修改数据14.总结常见数据记录15.mysql建表的约束15.1主键约束15.2自增约...

2020-03-18 23:50:19 810

原创 C++类模板 实现运算符重载

#include<iostream>using namespace std;template<class T>class A{private: T value;public: A(){this->value=0;} A(T value) { this->value=value; } ~A...

2020-03-15 23:32:05 2010

原创 Insertsort

Insertsort参考处最差时间复杂度:O(n^2)最优时间复杂度:O(n)平均时间复杂度:O(n^2)稳定#include<iostream>using namespace std;void insertsort(int a[],int length){ for(int i=0;i<length-1;i++) { int key=a[i+1]; ...

2020-02-19 14:41:25 287

原创 牛客华为机试题

题目描述开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W1...

2020-02-17 14:57:02 124

原创 C++ char转string int和string互转

char转string#include<iostream>#include<sstream>using namespace std;int main(){ char s='a'; /*法一 stringstream ss; ss<<s; cout<<ss.str(); */ /*法二:...

2020-02-12 23:00:02 213

原创 Ubuntu通过浏览器安装软件(VScode为例)

1.点击chrome进入官网,下载linux版本->主文件夹->下载会发现下载的*.deb文件我的是在/home/mylinux/下载2。打开terminalsudo dpkg -i *.deb然后dpkg: 错误: 无法访问归档 ’ .deb ': 没有那个文件或目录要先进入.deb的文件夹cd /home/mylinux/下载sudo dpkg -i *.de...

2020-02-12 11:12:15 1030

原创 MergeSort

C++ 实现归并排序原理:代码:#include <iostream>using namespace std;void Merge(int array[],int left,int middle,int right){ int length=right-left+1; int *temparray=new int[length]; int p1...

2020-02-09 20:45:47 124

原创 QickSort

C++ 快速排序原理代码:#include <iostream>using namespace std;int Split_Array(int array[],int left,int right){ /*填坑法 int index=left; int index_value=array[left]; while(left<=ri...

2020-02-09 16:16:33 119

原创 SelectSort

C++ 选择排序原理n维数组,需要选择n轮次,每个轮次选出最小值从左到右依次插入,时间复杂度O(n^2)代码#include <iostream>using namespace std;void Select_Sort(int p[],int length){ for(int i=0;i<length-1;i++) { int m...

2020-02-09 11:16:45 135

原创 BubbleSort

C++ 冒泡排序 以及优化原理:代码实现:#include <iostream>using namespace std;void swap( int& a,int& b ){ int temp=a; a=b; b=temp;}//最基本的冒泡排序void BubbleSort_01(int array[],int len...

2020-02-09 11:08:48 221 1

原创 MyQueue

title: MyQueuedate: 2020-02-08 22:35:21tags:C++类模板实现循环队列原理:代码:#include<cassert>#include<iostream>using namespace std;template<typename T>class Queue{private: T* array;...

2020-02-09 10:35:32 238

原创 C++质数判断

title: C++ 关于判断整数N是不是质数(素数)的基本算法date: 2020-02-06 20:16:55tags:质数的定义:一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除。no.1(时间复杂度O(N))判断整数N是不是质数,只需要用N除以2到N-1,如果都不能整除,那么该数就是质数no.2(时间复杂度O(sqrt(N)))判断整数N是不是质数,只需...

2020-02-08 14:07:06 1525

空空如也

空空如也

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

TA关注的人

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