从大学到职场的心路历程---杂记

时光荏苒,距离上一次发表博客已经有了一年多的时间,如今重回博客之路,几年前第一次写博客的情景依旧历历在目。期间发生了很多事情,从一个怀着希冀刚上大学的懵懂少年变成了步入职场的平凡码农。其中的历程很值得回味。。。 实话实说,当初打算写博客的主要目的是为了以后找工作时简历上可以多写点东西,算作一个加...

2019-03-05 11:13:53

阅读数 77

评论数 1

阻塞与非阻塞,同步与异步

阻塞与非阻塞,同步与异步 1. 概念理解      在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步:       所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也...

2017-08-20 15:02:42

阅读数 282

评论数 0

模拟C库中atoi与itoa

int my_atoi(char*str) { if (str == NULL) return 0; bool flag = true; if (*str++ == '-') flag=false; int res = 0; ...

2017-08-15 10:33:59

阅读数 234

评论数 0

auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结

auto_ptr是现在标准库里面一个轻量级的智能指针的实现,存在于头文件 memory中,之所以说它是轻量级,是因为它只有一个成员变量(拥有对象的指针),相关的调用开销也非常小。   下面的代码来自于VC++ 8.0里面的源码:     里面有个auto_ptr_ref的数据结构,我们可以把它忽...

2017-08-13 19:21:09

阅读数 294

评论数 0

C库中的strcpy,strncpy,memcpy,memmove,memset函数

一.函数介绍: 1、memcpy 函数原型:extern void *memcpy(void *dest, const void *src, size_t count); 用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和des...

2017-08-09 13:14:42

阅读数 368

评论数 0

布隆过滤器

位图只能用来快速判断一个整数是否在一堆整数中,如果我们想要判断一个字符串是否在一堆字符串里,那么位图就做不到了,因此布隆过滤器就出现了。它是由一个很长的二进制向量和一系列随机 映射函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。那我们可以利用哈希函数计算出它具体的存放位置。 它的优点是...

2017-08-06 21:25:56

阅读数 217

评论数 0

位图的简易实现及相关面试题

概述 位图(bitmap)是一种非常常用的结构,在索引,数据压缩等方面有广泛应用。本文介绍了位图的实现方法及其应用场景。位图的简易实现。#pragma once #include<iostream> #include<vector> using namespace std...

2017-08-06 10:57:40

阅读数 292

评论数 0

海量数据分析问题总结

1)给⼀个超过100G⼤⼩的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 第一题:首先我们的思路就是利用哈希进行文件的切分,我们把100G大小的logfile分为1000份,那么下来差不多没一个文件就是100M左右,然后再利用哈希函数除留余数的方法分配到对...

2017-08-06 10:56:35

阅读数 401

评论数 0

删除字符串中重复字符。

题目:删除字符串中重复字符。如果可以,优先删除重复字符中排在比他小字符前面的字符。 比如,输入:bbcacdww;输出:bacdw 分析:如果根本不允许开设数组,则只能就地进行字符串去重,那么可以依次访问字符串中的字符,并删除从该字符串开始到结尾的所有相同字符。时间复杂度为O(n^2 )。void...

2017-08-05 11:51:40

阅读数 7116

评论数 0

将N个字符的数组,循环右移K位。

要求:时间复杂度为O(N) 思路: 将一个字符串分成两部分,X 和Y 两个部分,在字符串上定义反转的操作X^T,即把X 的所有字符反转(如,X=”abc”,那么X^T=”cba”),那么我们可以得到下面的结论: (X^TY^T)^T=YX。显然我们这就可以转化为字符串的反转的问题了。 就拿...

2017-08-05 10:28:58

阅读数 388

评论数 0

无序数组的中位数

题目:求出一个无需数组的中位数。例:{2,5,4,9,3,6,8,7,1}的中位数为5,{2,5,4,9,3,6,8,7,1,0}的中位数为4和5。 要求: 不能使用排序。 思路1:将数据平均分配到最大堆和最小堆中,并且保证最小堆中的数据存放的数据都比最大堆中是数据大,那么此时最小堆堆顶的元...

2017-08-05 10:05:40

阅读数 371

评论数 1

要求对数组a进行排序,要求时间复杂度为O(N)

题目: int a[] = {12,13,12,13,19,18,15,12,15,16,17},要求对数组a进行排序,要求时间复杂度为O(N) 。void sort(int *arr, int size) { if (arr == NULL || size <= 0) ...

2017-08-04 23:04:20

阅读数 896

评论数 0

CVTE水果面试题

好像是去年CVTE在招聘的时候出了这样的一个笔试题:        题目的大意就是:本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的三种水果,并且告知已经将所有员工喜欢吃...

2017-07-31 14:42:43

阅读数 448

评论数 0

C++实现一个线程安全且高效单例类。(懒汉与饿汉)

在某些应用环境下面,一个类只允许有一个实例,这就是著名的单例模式。单例模式分为懒汉模式,跟饿汉模式两种。 首先给出饿汉模式的实现 template class singleton { protected: singleton(){}; private: singlet...

2017-07-29 16:39:02

阅读数 353

评论数 0

将二叉搜索树转化为一个排序的双向链表

题目: 输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,职能调整树中结点指针的指向。如下图所示: 由于要求转换之后的链表是排好序的,我们可以中序遍历树中的每一个结点,这回死因为中序遍历算法的特点是按照从小到大的顺序遍历二叉树的每一个节点。当遍历到根结点时,...

2017-07-29 16:28:26

阅读数 229

评论数 0

C语言模式实现C++继承和多态

继承与多态的概念 继承:是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,已有类被称为父类/基类,新增加的类被称作子类/派生类。 多态:按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同现方式即为多态。同一操作作用...

2017-07-28 15:07:48

阅读数 221

评论数 0

由前序遍历和中序遍历重建二叉树

题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含有重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出所示的二叉树并输出他的头结点。struct BinaryTre...

2017-07-28 14:36:44

阅读数 236

评论数 0

判断一颗树是否是完全二叉树

一.问题描述   有一棵树判断该树是否是完全二叉树? 二.问题分析 1.完全二叉树的定义?   判断一棵树是否是完全二叉树,首先要知道什仫是完全二叉树?完全二叉树就是除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。     ...

2017-07-27 11:19:51

阅读数 1212

评论数 1

求解两个集合的差集,集合是以单向链表存储

题目: 已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。 链表结点的结构类型...

2017-07-25 11:12:45

阅读数 291

评论数 0

判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像

根据平衡二叉树的定义,如果任意节点的左右子树的深度相差不超过1,那这棵树就是平衡二叉树。 首先编写一个计算二叉树深度的函数,利用递归实现。int Depth(TreeNode*pRoot) { if (pRoot == NULL) return 0; else ...

2017-07-24 11:54:33

阅读数 290

评论数 0

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