自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 企业级高并发短链接系统全流程设计

短链接数据多为短时效存储数据,不需要永久保存,如优惠券、促销活动等,之前的设计中短地址是永久保存在数据库和分布式缓存中,会带来数据库和Redis的存储资源容量持续增长,最终导致访问数据库速度下降以及Redis的OOM问题。可以选用无需即时生成的分布式ID解决方案,如美团的leaf开源组件,百度Uidgenerator开源组件,都有批量号段缓存及缓存预加载机制,ID的获取操作就是一个简单的数据GET操作,轻松可以达到十万级生成效率。短链接的原理其实就是:将长链接通过一定的算法生成一个短链接。

2023-11-10 15:28:33 327

原创 这道经典SQL面试问题你会吗?

我们把这两种情况都来写一下,先求总分最高的学生,找到这个score表,那既然是总分,我们肯定要用sum函数,那既然用到sum,那是不是要做一个分组,基于什么分组呢?虽然大部分互联网公司这种自动化的SQL生成器,也并不建议在系统里面去做连接查询,但是也有很多情况,比如说产品、运营要拉一些数据,排查一些线上问题,确实要去写一些比较复杂的CQL,而且你能写出这个SQL,代表你有两个能力,第一个就是你对业务本身理解是比较到位的,第二个就是你Sql本身的功底也是比较扎实的。求总分最高的学生他的分数是多少?

2023-11-03 18:07:45 321

原创 校招程序员无项目经验如何破局

没有实际项目经验是大多数校招同学的痛点,网上的项目都已经被用烂了,面试官看烦了。腾讯校招面试官给各位同学分享几点破局的思路,

2023-10-10 10:36:14 104

原创 linux汇编基础

#简介

2018-12-30 14:33:49 527

原创 腾讯微信事业部补录一面面经

2018-5-23: 约的上午10点半,先加了面试官微信,发了一个链接给我40分钟做题。总共四道,第一道一个智力题,第二道topK问题,第三道代码补齐,第四道链表反转。 开始面试: 1)讨论第一道智力题,64匹马8个赛道,找出前四名,最少赛多少场。 2)讨论第二道topK问题 3)C++为什么要引入虚函数,什么叫代码可扩展性,虚函数表讲一下 4)struct中为什么要字节对齐,怎么修改...

2018-05-27 16:39:16 4830 1

原创 七牛云面经

2018-3-28: 1)C++重载和重写的区别 2)说说C++的类型安全机制 3)你的项目里面是将模块封装成了动态库,为什么用动态库不用静态库。分别从使用、编译、操作系统角度说说动态库和静态库的区别。 4)让你实现一个vector,要注意哪些细节 5)进程和线程的区别,为什么有了进程还要线程,你的项目里面是用的线程池,用多进程和多线程一定能提升并发效率吗,还有其它的方法吗。 6)进程...

2018-05-26 17:07:55 796

原创 透彻理解C++中const的含义

关于const修饰变量、参数、返回值、成员函数不同的意义,网上有很多讲解的,这里不再赘述。在Dan Saks的一篇讲解const的文章中非常清楚的从编译器角度讲了const的含义,本文只做一定的总结,原文参考http://blog.csdn.net/bianbian17556231/archive/2010/03/20/5398276.aspx。 先看一个例子:typedef char* V...

2018-05-21 20:20:32 3833 1

原创 C++中的RVO和NRVO优化

RVO (return value optimization) 和NRVO (named return value optimization) 是C++在处理一个函数返回类对象并将返回值赋给另一个对象时,为了减少拷贝构造次数以及析构次数而采用的一种编译器优化技术。 本篇博客以《深度探索C++对象模型》中例子来总结这两种优化技术。代码片段如下:class Point3d{public:...

2018-05-20 11:58:42 8439 1

原创 字符串转换为整数

一道看似很简单的题,其实需要考虑很多情况。 1)需检测输入字符串的有效性 2)需跳过字符串前面的空格字符 3)需检测数字的正负性 4)需判断数字是否溢出代码如下: int My_atoi(char *str) { assert(str != NULL); int overFlag = 0;if (str == ""){ return 0;}char *i

2018-04-08 22:06:25 383

转载 KMP算法

http://www.cnblogs.com/SYCstudio/p/7194315.html 这个讲的详细,直接收藏吧,之后完全弄懂了之后,再来写自己的总结。 关于怎么求解next数组的可以参考下面这篇博文: http://blog.csdn.net/qq_30974369/article/details/74276186...

2018-03-14 21:44:21 162

原创 天平找假币问题

问题:给定12枚硬币,其中有一枚假币,其重量可能比真币重也可能轻,现只提供一个天平,问至少需要几次天平称重才能找到假币。 解决方案: 1)将12枚硬币平均分为3堆记为A,B,C,每堆有4枚硬币。将A,B两堆分别放在天平的两端,若天平平衡。说明假币在C堆中。 a)设C堆中的硬币为1,2,3,4。将1,2和3,4分别放在天平的两端,此时天平肯定不平衡,若1,2硬币所在的端比3,4所在的端...

2018-03-14 20:09:38 9779 2

转载 epoll底层细节

先简单回顾下如何使用C库封装的3个epoll系统调用吧。Cpp代码 int epoll_create(int size); int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); int epoll_wait(int epfd, struct epoll_event *events,int maxevent...

2018-03-13 20:34:01 306

原创 每日算法题三道之字符串循环移动以及词语的翻转

题目: 2、给定一个字符串S[0…..N-1],要求把S的前k个字符移动到S的尾部,如把字符串”abcdef”前面的2个字符’a’,‘b’移动到字符串的尾部,得到新字符串”cdefab”:即字符串循环左移k。要求时间复杂度为O(N),空间复杂度为O(1)。 1)思路一:逐个字符左移,将bcdef依次左移1个,再将a移到末尾;b是同样的操作,这样最坏时间复杂度为O(N2)。 2)思路二:先将a...

2018-03-08 17:49:17 271

原创 每日算法题三道之给定一个字符串求k个不同字符的最长子串

题目: 给定字符串str,计算最多包括k个不同字符的最长子串,如给定字符串”eceba”和k=3,则包括3个不同字符的最长子串为”eceb” 思路: 用两个变量i,j分别标志字符串子串的起始位置和终止位置str[i,j],两次for循环,外层起始位置,内层终止位置来暴力找子串str[i,j],当找到的子串str[i,j]中不同字符的个数小于k时继续遍历,等于时若大于原先找到的子串则更新,大于...

2018-03-08 16:11:49 1053

原创 C++中让一个类不能被继承

学过一点java基础的人都知道,在java中让一个类不能被继承,直接在类前面用final关键字修饰就好。但是在C++中如何实现呢? 一般来说有两种思路。 1、将构造函数申明为私有的,然后定义一个静态函数来创建对象,这种很多人都可以想到。但灵活性不好,每次要构造对象的时候还得调用这个静态函数。 2、利用友元不能被继承的特性来做。 1)可以先定义一个没有任何数据成员和成员函数的基类,将...

2018-03-07 21:22:42 1901

原创 每日算法三道之N对括号能得到括号匹配的序列有哪些

核心思想:递归 思路: 代码: 这里的代码是别人写的,没怎么看懂其如何组成字符串的,如果有看懂了的还麻烦告诉我,感谢感谢了。若只是求个数就很简单了,利用动态规划思想借助一个数组就好了,代码如下:“`include include include include using namespace std;/**用非递归算法只算能够形成的括号匹配...

2018-03-07 20:47:56 400

原创 每日算法三道之判定一个给定序列能否为二叉搜索树的后序遍历结果

核心思想:分冶、递归 思路:由于是一颗二叉搜索树,中序遍历为从小到大的结果,相当于已给定,其实转换为是否能根据中序和后序唯一确定一个二叉树。 根据后序遍历找到根,再找到中序遍历中此根节点的位置,从而可以将后序遍历分为左右两部分,判断左半边部分是否都小于根节点同时右节点都大于根节点,若是,则将左右两部分依次递归此过程,否则不是一个二叉搜索树的后序遍历结果。 代码:/**********...

2018-03-07 20:40:24 186

原创 死锁详解

1、死锁概念理解 死锁:是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 四个必要条件: 1)互斥条件:一个资源每次只能被一个进程(线程)使用。 2)请求与保持条件:一个进程(线程)因请求资源而阻塞时,对已获得的资源保持不放。 3)不剥夺条件 : 此进程(线程)已获得的资源,在末使用完之前,不能强行剥夺。 4)循...

2018-03-05 00:14:40 485

原创 Linux平台下如何快速安装Sublime Text软件

linux下安装sublime Text 3 添加sublime text 3的仓库: xzm@ubuntu:~$ sudo add-apt-repository ppa:webupd8team/sublime-text-3回车,出现很多信息。但是我们看看图片最后字知道,这地方在等待我们确认是否添加这个仓库,按enter键继续,按crtl+c取消。此时,按ENTER继续,建立信任数据...

2018-03-02 22:45:06 534 1

原创 openMP编程详解(囊括所有基本指令)

一、并行编程模型介绍共享内存模型: 并行程序中的进程或线程可以通过对共享内存区的读写操作来实现互相间的通信。该模型关注并行任务的划分以及映射到进程或线程的指派分配。适用于共享存储多处理器。该类型主要有OpenMP、基于POSIX线程库的多线程程序等。消息传递模型: 各个并行任务之间不能通过程序地址的访问获得另一任务的数据,必须显式提出数据通信请求才能在任务间交互信息。该模型关注数据的分...

2018-03-02 10:19:56 11537

原创 二维指针的几个常见写法的区别,与空间的动态开辟讲解

参考博客:http://c.360webcache.com/c?m=9db630237bcab162c751bfcb09608e76&q=calloc%E5%BC%80%E8%BE%9F%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84&u=http%3A%2F%2Fwww.cnblogs.com%2Fpanglei%2Farticles%2F2288013.html 下面三

2017-05-11 15:36:29 467

转载 string类常用函数

C++string类常用函数 string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2=”hello”;都是正确的写法。当构造的string太长而无法表达时会抛出length

2017-01-11 16:44:07 291

转载 用户级线程和内核线程

转载于http://col1.blog.163.com/blog/static/1909775192012719114033352/ 1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。 2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内

2016-12-30 14:42:18 352

转载 makefile编写详解

最近对linux中的makefile很是迷糊,看也看不懂,更不用说写了。终于找到一个超级详细的并且超级好的 介绍makefile的了 。以下是转载的大神的:                    跟我一起写 Makefile陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为

2016-12-28 12:15:34 453

转载 数组名和数组名取地址的区别

这篇为转载哈:原文地址http://blog.sina.com.cn/s/blog_7e40ef210101474l.html#include int main(){int a[5];printf("%d\n", a);printf("%d\n", &a);printf("%d\n", a + 1);printf("%d\n", &a + 1);prin

2016-12-19 14:21:37 201

空空如也

空空如也

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

TA关注的人

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