3 忘记时间的小白

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

KMP字符串模式匹配算法

一简单的字符串匹配算法1算法思想:分别用计数指针i和j指示主串S和模式串T中当前正待比较的字符串位置。从主串S的第一个字符起,与模式串T的第一个字符比较,若相等,则继续逐个比较后续字符;否则从主串的下一个字符起,重新和模式的字符比较;以此类推,直至模式T中的每一个字符依次和主串S中的一个连续的字符序列相等,则称匹配成功,函数值为与模式T中第一个字符相等的字符在主串S中的序号,否则匹配不成功,函数值为0。2实现代码:S="ababcabcac",T="abcac",结果应该为6。...

2020-07-31 20:00:07

C++面试常见问题

目录问答题1. 比较值传递和引用传递的相同点和不同点。2 什么叫内联函数?它有哪些特点?3 什么叫复制构造函数?复制构造函数何时被调用?4 复制构造函数与赋值运算符(=)有何不同?5 什么叫作用域?有哪几种类型的作用域?6 什么叫做可见性?可见性的一般规则是什么?7 什么叫静态数据成员?他有何特点?8 什么叫静态函数成员?他有何特点?9 什么叫友元函数?什么叫友元类?10 在函数内部定义的普通局部变量和静态局部变量在功能上有何不同?计算机底层对这两类变量做了怎样的不同处理导致了这种差异

2020-05-09 19:28:57

求给一次复试机会

2010年https://www.cnblogs.com/southernEast/p/12431357.html2011年https://www.cnblogs.com/southernEast/p/12438905.html2012年https://www.cnblogs.com/southernEast/p/12448437.html2013年https://www.cnblog...

2020-04-25 14:36:17

C中break和continue的用法和区别

前面已经介绍过 break 语句,它不仅可以跳出“循环体”,还可以跳出 switch。但事实上,break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹...

2020-04-16 21:23:52

让人眼前一亮的算法------唯一ID生成器snowflake

分布式全局唯一ID生成器很多场景需要使用全局唯一ID,用来标识唯一一条消息,唯一一笔交易,唯一一个用户,唯一一张图片等等。传统数据库表的自增主键是很简单的一种实现方式,前提是你没有分库,也没有分表,如果你分表了,id就会重复,失去唯一性:当然,通过数据库的一些配置,使不同的分表以不同的起始值但是相同的步长自增,可以绕开这个限制:但是,如果哪天发现数据量增大,原先的分表不够用...

2020-01-09 21:37:08

让人眼前一亮的算法------时间轮

从定时任务说起 自然界中定时任务无处不在,太阳每天东升西落,候鸟的迁徙,树木的年轮,人们每天按时上班,每个月按时发工资、交房租,四季轮换,潮涨潮落,等等,从某种意义上说,都可以认为是定时任务。大概很少有人想过,这些“定时”是怎样做到的。当然,计算机领域的同学们可能对此比较熟悉,毕竟工作中的定时任务也是无处不在的:每天凌晨更新一波数据库,每天9点发一波邮件,每隔10秒钟抢一次火车票。。。...

2020-01-09 21:25:46

让人眼前一亮的算法------一致性Hash

背景随着时代的发展,数据量与日俱增,相比纵向扩展单机的性能,人们更倾向于横向扩展,将多台一般的廉价机器组成集群来充当超级计算机,节省了大量的成本,代价是极大地增加了系统的复杂性。为了应对这些复杂性,一批又一批分布式领域的技术相继诞生,其中不乏一些看过之后令人拍案叫绝的精彩的想法。从存储来说,数据量大的时候,一台机器不能胜任时,那么通常的做法是将数据分片,存储到多台机器上,通过集群的方式完成数...

2020-01-09 20:29:09

让人眼前一亮的算法------布隆过滤器

问题假设你现在要处理这样一个问题,你有一个网站并且拥有很多访客,每当有用户访问时,你想知道这个ip是不是第一次访问你的网站。这是一个很常见的场景,为了完成这个功能,你很容易就会想到下面这个解决方案:把访客的ip存进一个hash表中,每当有新的访客到来时,先检查哈希表中是否有改访客的ip,如果有则说明该访客在黑名单中。你还知道,hash表的存取时间复杂度都是O(1),效率很高,因此你对你的方案...

2020-01-09 19:37:36

Redis缓存技术

https://blog.csdn.net/qq_42737056/article/details/86531310

2020-01-09 11:46:33

C++ 复制构造函数被调用的三种情况

Point类class Point{ public: Point(int xx, int yy){ //构造函数 x = xx; y = yy; } Point(Point &p); //复制构造函数 int getX(){ return x; } int getY() { return y; } private: ...

2020-01-06 11:35:12

求斐波那契数列的三种方法------递归法、for循环法、快速幂矩阵法

1 递归法求斐波那契数列,时间复杂度O(n^2),实现代码如下:#include <iostream>using namespace std;int Fib(int n) { if(n <= 2) return 1; else { return Fib(n-1) + Fib(n-2); } } int main(){ int n, result; ...

2020-01-05 08:25:17

深入理解java虚拟机------第二章Java内存区域与内存溢出异常

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来。2.1概述对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,但也因此把内存控制的权利交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,排查错误将成为一项异常艰难的工作...

2020-01-04 10:41:03

包含所有c++的头文件的头文件

#include<bits/stdc++.h>#include<bits/stdc++.h>这个头文件包含以下等等C++中包含的所有头文件:#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#inclu...

2020-01-03 19:28:25

深入理解Java虚拟机------第一章走进java

一章是对java的产生,历史的整体介绍java的使用很广泛,安装jdk的时候会看到一句广告语runs in 10 billions machines。使用java的设备多达几十亿台1.概述优点: 摆脱了平台的限制,一次编写,到处运行 相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题 热点代码检测和运行是编译及优化 完善的应用接口,还有无数来自商业机...

2019-12-30 16:46:12

GC垃圾收集

1、GC是什么?为什么要有GC?GC垃圾收集,Java提供的GC可以自动监测对象是否超过作用域从而达到自动回收内存的目的。垃圾回收可有效使用内存和防止内存泄露。垃圾回收器通常是作为一个单独的低优先级线程运行,不可预知的情况下对内存堆中已死亡或长久无使用的对象进行清除和回收。回收机制:分代复制垃圾回收、标记垃圾回收、增量垃圾回收等方式。2、什么时候会导致垃圾回收?1)当Eden区...

2019-12-30 11:12:38

C++中公有继承、保护继承、私有继承的区别

1 公有继承时基类中各成员属性保持不变,基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。2 私有继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;...

2019-12-29 11:47:41

2020考研东南935数据结构算题

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路这道题有两点要求:1.把所有的奇数调整到偶数前面。2.要保持稳定性。 像这种要求按一定规则调整顺序的题,都可以看成类似排序的题。在此题中要求奇数在前,偶数在后,我们可以把奇数看成较小的值...

2019-12-26 10:41:43

disjoint_set并查集

disjoint_set并查集 :可用于统计森林里有几棵树//disjoint_set并查集 #include <iostream>using namespace std;int parent[1000];//初始化数组 void initalise(int parent[]) { for(int i=0; i<=1000; i++) { parent[i...

2019-07-12 23:27:29

判断一个图里是否有环

题目:利用并差集(disjoint_set)判断一个图里是否有环一般代码:/*利用并差集(disjoint_set)判断一个图里是否有环 */#include <iostream># define VERTICES 6 //设置图的定点为6个 using namespace std;//初始化根结点数组,此时每个结点都是一个独立的结点 void init...

2019-07-12 22:14:16

统计二叉树中不平衡节点树的个数

题目:写一个算法,统计二叉树中不平衡结点树的个数。若一个树的左子树高度和右子树高度之差的绝对值大于1,则表明该节点为不平衡结点。一般写法:/*题目:写一个算法,统计二叉树中不平衡结点树的个数。若一个树的左子树高度和右子树高度之差的绝对值大于1,则表明该节点为不平衡结点。*/#include <iostream>#include <algorithm>u...

2019-07-12 20:46:22

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。