- 博客(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
209
原创 回溯算法
解决回溯问题,实际上就是一个决策树的遍历过程。要思考三个问题:1.路径:也就是已经做出的选择;2.选择列表:也就是当前可以做的选择;3.结束条件:也就是到达决策树底层,无法再做选择的条件。框架模板:result = []def backtrace(路径,选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrace(路径,选择列表)
2021-05-16 19:32:37
180
原创 算法之并查集的原理及其实现
初始化假定每个节点有一个指针指向其父节点,如果是根节点的话,这个指针就指向自己。合并如果两个节点被连通,则让其中的(任意)一个节点的根节点接到另一个节点的根节点上例如:union(1,4)未优化版本public class UnionFind { private int count;//记录连通分量的数目 private int[] parent; //构造函数 public UnionFind(int n) { this.count.
2021-05-16 09:00:38
265
原创 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
167
原创 算法-滑动窗口的应用
算法-滑动窗口的应用#最小覆盖字串问题输入: 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
135
原创 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
269
原创 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
196
原创 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
1442
原创 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
2097
原创 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
338
原创 牛客华为机试题
题目描述开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W1...
2020-02-17 14:57:02
150
原创 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
239
原创 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
1094
原创 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
153
原创 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
143
原创 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
164
原创 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
279
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
280
原创 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
1645
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人