自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YoungStunner的博客

我的博客

  • 博客(30)
  • 收藏
  • 关注

原创 美团点评 社招 一面(3.6中午)结果通过 美女面试官

HashMap的put怎么实现,如何解决hash冲突。调用putval,计算相应hash码,然后初始化(默认64的capacity)或调用resize函数调整大小,判断bucket是否有值,若没有在数组初始化改值。若有则以拉链法(链表的形式)解决hash冲突,这里和ThreadLocalMap不一样,ThreadLocalMap使用的是线性探测法,接着将相应节点加入链表头部。如果超过8个元素会进化...

2018-03-12 23:04:46 9301 5

原创 岩心科技面经(四面 三轮技术 1轮hr 已拿到offer)

一面一面面试官是拿着手机照着题目念得。。。问题之间没有连续性,没有深度,都是概念题。念了差不多七八道题。虽然都是秒,不过为了体现出我的能力,回答的时候还是夹着些私货的。比如第一个问题问TCP有几层。回答四层,然后又提了OSI的七层模型,计算机网络(第五版)里定义的五层模型。然后详细分析了每层的作用。接着又扯了些各层的算法。如IP层的路由表算法,子网掩码,数据链路层的反向地址解析协议,TCP重点提了...

2018-03-07 13:35:39 8833 4

原创 质数金服(一面 1h30min)(拿到offer) 区块链开发

面试官不像以前的面试由点及面,而是由面及点。先是从实习开始的项目一个个问,从为什么这么做从而引出实现原理,然后根据项目背景提出场景,叫我进行相应的优化,然后提出异常场景,提问如何保证高可用等。比如网络断连,在存取数据库时,应用程序发生OOM,导致缓存没有刷新等。靠着看过Redis,Nginx源码以及计算机基础勉强苦苦支撑。答了各种超链接,超时重传,ack认证,后台进程定期同步等等勉强应付过去。如何...

2018-03-07 08:38:28 3933 3

原创 网易一面(电话 3.6下午 一面通过)

1.项目介绍没什么难度,各有各的项目,就不写了2.GC算法了解哪些CMS,G1,serial,parallel,scavenge balabala3.说下G1?太简单不写了,此处感谢美团,看这个就行(https://tech.meituan.com/g1.html)4.CMS?太简单不写了,周志明的书81页。5.Spring boot的好处?约定大于配置,而且集成了许多框架,比如传统的tomcat...

2018-03-07 08:02:02 2445 2

原创 北京玉符飞扬科技面经(一面拿到offer)面试官是facebook的大牛

Q:Set Map 的实现A:Set就是用Map实现的,Map的Value设置为Present的一个占位符实现。Q:Map有什么实现A:LinkedHashMap,HashMap,TreeMapQ:讲讲LinkedHashMap。A:就是在HashMap的基础上维护一个List,该list的顺序是以put的顺序为准的。使用场景常用来作为简单的缓存,使用LRU算法淘汰entryQ:TreeMap什么...

2018-03-03 18:36:37 6798 5

原创 Mac上的jd-gui不能使用(打开)

使用Java9不能打开jd-gui,下面是错误信息 WARNING: An illegal reflective access operation has occurredWARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/Applications/JD-GUI.ap

2017-12-03 09:29:47 13729 10

原创 Mac在一段时间不使用后,应用会自动退出的解决方法

解决方法: 在系统偏好设置-安全性与隐私-通用-高级 把“在XX分钟不活跃后注销”的勾去掉就好。

2017-12-03 08:47:27 13393 5

原创 如何使用git精确定位代码的出处,作者,时间,SHA,并精确查看代码的修改记录

使用方法如果你要定位某个文件的某几行是谁修改的, 那么只要运行 git blame -L n,m [filename]你就会得到当前commit(即HEAD所指向的commit)的这个文件n-m行的详细修改信息:包括SHA,日期和作者。如果想知道过去某次commit的某几行的修改出处,只需在其后面加入对应的commit的SHA或者tag就好了 git blame -L n,m [filen

2017-12-02 18:39:03 6125

原创 Git-撤销(回退)已经add,commit或push的提交

但是如要要保持版本历史干净的话,建议还是用 git reset[^footnote2],但是希望保留完整的历史的话,还是使用git revert为好。对于和其他人协同的项目,使用git rever是最好的。

2017-12-02 16:43:06 57148 6

原创 目前为止,在图像缩放项目遇到的一些坑

半个月前,我还对前端一窍不通,真的一窍不通。因为公司的要求,要做一个JavaScript的项目(图像的点开,切换,拖动,缩放,双击还原等功能)。后面用了三天学习了相关语法就开始做了。之前本来已经做好了的,但是因为对小米手机上的qq浏览器不兼容,又被打回来重写。经验就是做前端不要用cpp的思想去自己造轮子,要时刻关注有没有已经做好了的轮子,不要重复造轮子。尽量调用库里面已经有的函数。这是对后面改用库

2016-07-27 22:40:51 662 1

原创 Nginx中slab分配大内存时需要注意的地方

nginx一般使用slab来管理共享内存,在程序启动时,分配好需要共享的内存,然后使用slab来进行初始化,之后就交给slab来管理这段内存。但是在大内存分配时,可能会出现分配不出内存的现象。因为分配内存时,会调用ngx_slab_alloc_locked,在这个函数里面会先判断size是否大于ngx_slab_max_size,代码如下。void *ngx_slab_all

2016-04-27 16:17:00 3332

原创 一个存储函数的问题错误

今天在编写一个存储函数的时候,出现了一个问题:之前用存储过程是没有问题的,但是为什么函数就不行了呢,按理函数是可以不用声明NO SQL,READS SQL DATA等等这些就可以创建的。再看一下它的错误描述,原来二进制日志被启用了,而此时我们就必须指定是否是:1 DETERMINISTIC 不确定的2 NO SQL 没有SQl语句,当然也不会修改数据3 READS SQ

2016-03-12 16:16:49 488

原创 不用中间变量实现交换swap的问题

我们在实现交换的时候一般都是用一个中间变量来暂存:void swap(int& a, int& b) { int temp = a; //exchange a = b; b = temp;}类似于这样,然而也有不用中间变量的方法:void swap(int& a, int& b) { a += b; b = a - b; a -= b;}还有这样:void swap

2016-03-08 12:46:01 2034 1

转载 Bloom Filter概念和原理

Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,Bloom

2016-03-07 16:17:53 435

原创 STL iterator失效

今天写的代码在用到vector的迭代器的时候出现了错误,后面写了一个测试的code并查阅了相关资料,找到了问题。测试的code是这样的:#include#includeusing namespace std;int main() { vector int_array; for (int i = 0; i < 10; ++i) { int_array.push_back(i)

2016-03-06 23:59:27 468

原创 vector<bool>STL中的陷阱

今天 ,写代码的时候我想用一个数组把布尔值存起来,就像这样: vector a; if (isOrder(num)) { a.push_back(true); }然后取他的一个元素的地址时:bool* ptr = &a[0];就出现了编译错误:error C2440: “初始化”: 无法从“std::_Vb_reference>> *”转换为“bool *”note: 与指

2016-03-02 21:10:14 1610

原创 list和vector的区别

vector是联系内存容器,它为存储的对象分配一块连续的地址空间,内存布局与C完全相同。在vecotor中插入或者删除某个元素,将影响到效率和异常安全性(除非是在容器的尾部)。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行移动的时候开销会较大。vector在每次扩张容量的时候,将容量扩展2倍。一旦空间重新配置,原迭代器将全部失效。vector迭代器普通指针类

2016-02-28 23:41:24 764

原创 对字符串数组进行排序,将变位词排在相邻位置

#include#include#include#include#include#includeusing namespace std;string sortChars(string s){ sort(s.begin(), s.end(), less()); return s;}void sort(vector& array){ hash_map> hash; lis

2016-01-26 17:44:41 656

原创 c++STL中的hash_map自定义类。

是的,hash_map是一个很方便的容器,有了STL确确实实给了C++developer很大方便,hash_map就是其中一种。他在数据少的时候,作用和基于RB-tree的map差不多,甚至不如,毕竟有hasher。但是在大量数据的时候,就很快捷了。我平时用hash_map都是用基本类型的,最多弄个string类,也是库里已经弄好了的。直接套模板就行。可是今天遇到一个问题就是当你需要把一个自定义类

2016-01-26 01:18:50 3370

原创 用n个宽d,高h,深d的箱子打出高度最高的箱子,下面的箱子的宽度,高度和深度必须大于上面的箱子

这个可写死我了,从晚上六点写到晚上11点,终于写对了,hash_map真的可以,先 放上代码,理论等会当独开一篇文章:#include#include#include#pragma warning(disable:4786)using namespace std;struct Box{public: int width; int depth; int height;

2016-01-25 23:52:25 1940

原创 打印n对括号的全部n对有效组合

#include#includeusing namespace std;int length(char* str){ if (str == 0) return 0; int count = 1; char* n = str; while (*n != '\0'){ count++; n++; } return count;}void addParen(vec

2016-01-24 16:18:06 474

原创 返回某集合的所有子集

#include#includeusing namespace std;vector> getSubsets(vector& set, int index){ vector> allsubsets; if ((int)set.size() == index){ vector s; allsubsets.push_back(s); } else{ allsubsets =

2016-01-24 00:24:18 528

原创 二位平面上,经过点数最多的线

#include#include#include#includeusing namespace std;class Point{public: double x; double y; Point() :x(0.0), y(0.0){} Point(double _x, double _y) :x(_x), y(_y){}};class Line{private: bo

2016-01-22 00:57:14 547

原创 集合栈-程序员面试金典

数据结构由多个栈组成,用链表连接,并且在前一个栈填满之时,新建一个栈,且push()方法和pop()方法和top()方法与普通栈的方法一样。且实现了一个popAt(int index)方法,指定子栈,并执行pop()操作,当一个非最后的栈pop时,用后续栈将其填满。为实现popAt()需要访问后一个栈的底部,所以不能使用Stack模板,而是使用deque。pop(),push(),top()都是通

2016-01-19 11:10:00 500

原创 移除未排序链表中的重复结点

#include#include using namespace std;struct ListNode{ int m_nValue; ListNode* m_pNext;};ListNode* CreateListNode(int value){ ListNode* pNode = new ListNode(); pNode->m_nValue = value; pN

2016-01-19 00:40:42 480

原创 用stack和面向对象的设计思想实现汉诺塔

#include#includeusing namespace std;class Tower{public: Tower(){} Tower(int i) :index(i){} ~Tower(){}; int getIndex(){ return index; } void add(int d){ if (!disks.empty() && disks.top() <=

2016-01-19 00:36:54 387

原创 求二进制中数1的个数

代码如下#includeusing namespace std;/*1、int Num1(int n){ int count = 0; while (n){ if (n % 2 == 1){ ++count; } n /= 2; } return count;}*//*2、int Num1(int n){ int count = 0; unsign

2015-12-31 22:48:50 422

原创 最大公约数

求最大公约数是程序中经常需要使用的,大部分人都知道可以使用辗转相除法来求得,但是因为需要使用取模运算,开销较大,那么有没有更好的方法呢?答案是肯定的。一下是代码:#includeusing namespace std;/*1、int GreatestCommonDivisor(int x, int y){ return (!y) ? x : GreatestCommonDivisor(y

2015-12-30 17:49:53 352

原创 神奇的多态

C++中多态表示通过一个public基类的指针或引用,来得到一个衍生类对象,并希望同一方法根据对象的不同而有不同的行为。一般来说多态需要搭配2种方式来使用:1、经过隐式转换操作,把衍生类的指针或引用转换为public基类的指针或引用。如 class A{...};class B:public A{...};A& a1=b;2、使用虚函数(virtual function)。编译

2015-12-30 09:20:59 408

原创 浅谈C++中的特殊函数初始化

今天考完六级了,就来写一写我的第一篇blog吧,说是blog其实叫学习笔记其实更为妥当吧。那么今天就探讨一些关于constructor以及一些c++中的特殊函数吧。我是从java来入门的ob,就对人类的友好型来说自然是Java要好许多,每一个都需要一个初始化的方法,这是需要用一种叫constructor(构造器又叫构造函数),构造函数采用与类相同的名字,构造器方法是可以重载的,在Java中构造

2015-12-20 10:36:35 494

空空如也

空空如也

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

TA关注的人

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