自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

司曹龙的博客

多学习 多进步

  • 博客(127)
  • 资源 (2)
  • 收藏
  • 关注

原创 面经百度

new、malloc的区别 属性:运算符、函数; 参数:分配大小 返回类型:new返回对象的类型 malloc返回void(*); 分配失败:new 抛出bac_alloc异常 malloc返回NULL; 自定义类型: new先调用operator new 函数申请足够的内存(底层使用的malloc) 然后...

2018-10-23 22:11:33 222 1

转载 面试点 终极

知识点:924一、c++基础 extern的作用 与‘C’一起作用时候,则告诉编译器fun这个函数名按着c的规则去翻译相应的函数名 另一种作用就是声明函数和全局变量的作用的范围关键字,其声明的函数和变量可以在本模块或者其他模块使用,记住它是一个声明而不是定义; static的作用 在c中的作用 修饰局部变量,成为静态变量存...

2018-09-26 00:10:50 232

原创 网络编程:多线程编程模型

/************************************************************************* > File Name: src/echo_tcp_server_th.c > Author: sicaolong > Mail: [email protected] > Created T...

2018-09-23 19:20:14 418

原创 面试点2

面试点2 TCP、UDP的区别和优缺点 TCP面向连接的、udp是无连接的,也就是发送数据之前不需要建立连接 TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达;UDP只是尽最大努力交付,不保证可靠交付;TCp通过检验和、重传标志,序号标志,滑动窗口、确认应答实现可靠传输;如丢包的重发控制,还可以对次序乱掉的分包进行顺序控制; ...

2018-09-18 09:30:24 206

原创 面试知识点

面试知识点: 字符串 strstr(str1,str2)的作用,用来判断str2是不是str1的子串 char* strchr(const char,char ch);说明:返回首次出现ch的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果Str中不存在Val则返回NULL。 void *memcpy(void *de...

2018-09-12 00:39:47 129

原创 (三)剑指offer63 机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?dfs求注意里面的count每次要更新一...

2018-09-02 17:58:45 123

原创 (三)、剑指offer62 矩阵中的路径(递归回溯)

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字...

2018-09-02 16:24:56 160

原创 (三)剑指offer61 滑动窗口中的最大值 (队列中的最大值)

题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...

2018-09-02 15:12:26 122

原创 (三)剑指offer 60数据流中的中位数

思路:用堆;两个堆 一个最大堆 一个最小堆;vector<double>min,max;如果为奇数的时候 将往最大堆中插入;如果为偶数的时候就往最小堆中插入;最后的数据的总数为奇数 返回min[0];偶数返回(max[0]+min[0])/2;代码如下:class Solution {private: vector<double>max,mi...

2018-09-02 11:12:25 136

原创 (三)剑指offer 57 二叉树的之子打印(栈) 58 按行打印(队列)

1、之字形打印(两个栈);/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution ...

2018-09-02 01:22:23 149

原创 (三)剑指offer56 二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:中序遍历  下一个结点有两种情况当前结点有右子树的话,就找出右子树中的最左的结点; 如果没有右子树的话  就往它的父节点找,找到第一个结点是它的父节点的左子节点的结点;代码:/*struct TreeLinkNode { ...

2018-09-02 00:18:17 105

原创 (三)剑指offer55 删除链表中的重复的结点;

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:当两个结点相同的时候 找到第一个不重复的结点当不相同的时候,转移到第二个节点上; cur->next=deleteNode(cur->ne...

2018-09-01 23:36:57 96

原创 (三)剑指offer54 链表环的入口

给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路:判断是否存在环,快慢两个指针相遇的节点就是pMeet; p1=pMeet,p2=Phead; 两个再同时走 直到相遇 就是入口点;方案二:用map  当 dict的值==2的时候就是入口点;/*struct ListNode { int val; struct ListNode *n...

2018-09-01 22:10:29 99

原创 (三、)剑指offer53 字符流中第一个不重复的字符

题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。 class Solution{ private: char dict[256...

2018-09-01 21:18:22 116

原创 (三)剑指offer52 表示数值的字符串

 题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。思路:首先看看第一位是不是+/-号 用

2018-09-01 20:56:08 100

原创 (三)剑指offer51 正则表达式(两种情况)

题目描述 :请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配思路:两种情况当前字符的下一个字符是不是 * 三种情况 匹配0个 1个两个;...

2018-09-01 16:30:47 387

原创 (三)剑指offer 50构建数组乘积

题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。思路:分为上三角和下三角;class Solution {public: vector<int> multiply(const vector<i...

2018-09-01 16:27:17 135

原创 (三)剑指offer 46 47 求1+2+3+...+n 和 两个数之和;

46: 1+2+3+。。。。。n思路:用函数递归 ;class Solution {public: int Sum_Solution(int n) { int sum=n; return (n==0?sum:sum+Sum_Solution(n-1)); }};47、求两个数的和;(不能用四则运算)把sum 看成是^的...

2018-09-01 16:24:23 132

原创 (三)剑指offer45 约瑟夫环的问题

题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.....

2018-09-01 15:55:01 118

原创 (三)剑指offer 44扑克牌顺子

思路:找出其中的王的个数(可以匹配任何数字) 求出间隔数 =nums[right]-nums[left]-1;如果差一的话代表正好 不需要补充 ;4 5之间不需要王来填补;4 6 之间需要王来匹配5代码:class Solution {public: bool IsContinuous( vector<int> nums ) { int...

2018-08-31 23:54:07 123

原创 (三)剑指offer 43翻转单词顺序列

“student. a am I”-----》“I am a student.”思路:反转字符串的思路反转整个字符串 反转每个单词class Solution { void my_reverse(string &str,int left,int right) { if(left>=right)return ; while(left<righ...

2018-08-31 23:24:29 82

原创 (三)剑指offer 42 左旋转字符串

如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!思路:我是用的字符串的方式 利用了库函数 当然 可以用字符交换的方式class Solution {public: /*string LeftRotateString(string str, int n) { int len=...

2018-08-31 17:56:32 106

原创 (三)剑指offer41 和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。思路:双索引技术;但是我没有考虑越往中间两个数的乘积越大(所以只要满足两个数相加=s的时候就直接输出)这是利用了数组的递增的性质;所以可以修改一下我的代码;class Soluti...

2018-08-31 17:43:20 148

原创 (三)剑指offer40 和为S的连续正数序列(滑动窗口)

思路 就是求几个连续数组的和等于sum;设置变量 left=1;right=-1;滑动窗口的初始化为不可能取得的值;int cur=0; 循环的条件while(left<sum); if(cur<sum&&right+1<sum) cur+=++right; else  cur-=left++; if(cur==sum) temp.push_bac...

2018-08-31 17:05:27 124

原创 (三)剑指offer39 数组中只出现一次的数字

一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。思路一:map啊 肯定用map啊超简单的;需要额外的空间;思路二:异或操作;先全体异或 求出异或的结果,按照第一个为1的位数 分为两部分  为1的one;与不为1的zero数组; 再从每一个数组中求出只出现一次的那个数;代码:class Solution {public: ...

2018-08-31 16:12:10 93

原创 (三)剑指offer38 平衡二叉树的判断

思路:根据定义判断  dis=(left-right)《=1是否成立;方法1:求出每个节点的高度;然后再判断,递归判断左右子树是否是平衡二叉树(重复遍历了节点)方法2:把求根节点的高度的时候 记录下求得的每一个结点的高度;然后判断左右子树是不是平衡的二叉树;再判断root是不是代码:class Solution {public: //method1 /*int ...

2018-08-31 15:55:21 88

原创 (三)剑指offer37 二叉树的深度

思路:典型的递归回溯题代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: int Tree...

2018-08-31 15:51:09 89

原创 (三)剑指offaer36 数字在排序数组中出现的次数

思路1:map;需要遍历一遍 可能会超时;思路2:排序数组,体现出二分查找的优势;查找 k-0.5 k+0.5 应该插入的位置;两者相减就是;class Solution {public: int findPos(vector<int>data,int left,int right,double k) { while(left<...

2018-08-31 15:50:00 88

原创 (三)剑指offer35 两个链表的第一个公共节点

思路:首先遍历两个链表 求出两个链表的长度len1、len2;以及长度差dis; 让长的为list1 短的为list2; list1 走dis步; 然后list1 list2 同时走  当list1==list2 的时候找到这个公共节点;代码:class Solution {public: ListNode* FindFirstCommonNode( ListNode* ...

2018-08-31 15:45:37 88

原创 排序算法总结

貌似排序算法又全忘了,是怎么回事了这次特地整理了一下希望以后别再忘了 记住大体的流程也好/************************************************************************* > File Name: src/sort.cpp > Author: sicaolong > Mail: s...

2018-08-27 21:52:13 138

原创 2017 校招题幸运袋子(递归回溯法 DFS)

一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可...

2018-08-15 18:00:24 565

原创 2017校招题目 混合颜料

题目描述你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本...

2018-08-15 16:17:07 207

原创 剑指offer(三)33题 第一次只出现一次的字符

题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 思路 :哈希表啊  map啊  直接上代码:class Solution {public: int FirstNotRepeatingChar(string str) { ...

2018-08-15 11:00:36 116

原创 剑指offer(三) 32题 丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路可以从前遍历每个数  然后判断这个数 是不是丑数   这个会超时; 可以用丑数逐渐变大的过程 来找  进行n次 就可以  计算量减少 设置2 3 5 出现的次数cnt2 cnt3 cnt5=...

2018-08-15 10:52:20 98

原创 2017 校招题目 地牢逃脱 考察 BFS

题目描述给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。输入描述:每个输入...

2018-08-13 21:31:44 152

原创 2017年校招题 合唱团(动态规划)

题目描述有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每...

2018-08-13 16:48:34 182

原创 网易:[编程题] 一封奇怪的信

现在你需要用一台奇怪的打字机书写一封书信。信的每行只能容纳宽度为100的字符,也就是说如果写下某个字符会导致行宽超过100,那么就要另起一行书写信的内容由a-z的26个小写字母构成,而每个字母的宽度均会事先约定。例如字符宽度约定为[1,2,3,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],那么就代表'a'到'd'四个字母的宽度分别是1,2,3,4...

2018-08-08 20:13:10 759

原创 网易:[编程题] 糖果谜题

小明是幼儿园的一名老师。某天幼儿园园长给小朋友们每人发一颗糖果,小朋友们拿到后发现有一些同学拿到的糖果颜色和自己相同,有一些同学糖果颜色和自己不同。假定每个小朋友只知道有多少同学和自己拿到了相同颜色的糖果。上课后,有一部分小朋友兴奋的把这一结果告诉小明老师,并让小明老师猜一猜,最少有多少同学拿到了糖果。例如有三个小朋友告诉小明老师这一结果如下:其中第一个小朋友发现有1人和自己糖果颜...

2018-08-08 20:09:38 2745

原创 网易笔试题2:会话列表

小云正在参与开发一个即时聊天工具,他负责其中的会话列表部分。会话列表为显示为一个从上到下的多行控件,其中每一行表示一个会话,每一个会话都可以以一个唯一正整数id表示。当用户在一个会话中发送或接收信息时,如果该会话已经在会话列表中,则会从原来的位置移到列表的最上方;如果没有在会话列表中,则在会话列表最上方插入该会话。小云在现在要做的工作是测试,他会先把会话列表清空等待接收信息。当接收完大...

2018-08-07 21:38:07 773

原创 网易互娱笔试:电子时钟

输入描述:每个输入数据包含多个测试点。每个测试点后有一个空行。 第一行为测试点的个数T(T<=100)。 每个测试点包含1行,为一个字符串”HH:MM:SS”,表示钟表显示的时间。输出描述:对于每个测试点,输出一行。如果钟表显示的时间为真实存在的时间,则不做改动输出该时间,否则输出一个新的”HH:MM:SS”,表示修改最少的数字情况下,字典序最小的真实存在的时间。输入...

2018-08-07 21:30:55 1509 2

c++ STL模板

向量vector是一种随机访问的数组类型,提供了对数组元素的快速、随机访问以及在序列尾部快速、随机的插入和删除操作。它是大小可变的向量,在需要是可以改变其大小。 形式:

2017-11-08

STL标准模板库

C++ STL 向量vector是一种随机访问的数组类型,提供了对数组元素的快速、随机访问以及在序列尾部快速、随机的插入和删除操作。它是大小可变的向量,在需要是可以改变其大小。 形式:

2017-11-08

空空如也

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

TA关注的人

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