自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

R_g_Luo的博客

技术分享

  • 博客(76)
  • 资源 (12)
  • 收藏
  • 关注

原创 基于Cisco Packet Tracer的基础命令操作及组网实验

基于思科模拟器的基本命令操作及简单组网实验

2017-07-04 15:34:38 33983 1

转载 Typora(markdown)快捷键

无序列表:输入-之后输入空格 有序列表:输入数字+“.”之后输入空格 任务列表:-[空格]空格 文字 标题:ctrl+数字 表格:ctrl+t 生成目录:[TOC]按回车 选中一整行:ctrl+l 选中单词:ctrl+d 选中相同格式的文字:ctrl+e 跳转到文章开头:ctrl+home 跳转...

2019-11-21 13:13:31 350

原创 面试题2:实现Singleton模式

实现Singleton模式(要求熟练掌握)https://blog.csdn.net/justloveyou_/article/details/64127789单例模式的要求:类在内存中只能有一个实例1.该对象不能是全局对象或者栈对象2.该对象是一个堆对象静态成员函数与普通成员函数的区别:https://blog.csdn.net/liujianfei526/articl...

2019-05-20 10:16:33 257

原创 面试题1:赋值运算符函数

首先应该考虑异常安全性https://blog.csdn.net/bonchoix/article/details/8046727一个函数如果说是“异常安全”的,必须同时满足以下两个条件:1.不泄漏任何资源;2.不允许破坏数据。(内存泄漏:指程序在申请内存后,无法释放已申请的内存空间)其次要满足四个点:1.把返回值的类型声明为该类型的引用,并在函数结束前返回实例自身的引用(*th...

2019-05-20 10:16:19 308

原创 面试题68:树中两个节点的最低公共祖先

该题有三种变型:一、如果该树是二叉查找树,求树中A,B两个节点的最低公共祖先,方法如下:1.从树的根节点和两个输入节点开始进行比较,如果当前节点C的值比A,B节点值都大,那么最低的共同节点一定在当前节点的左子树中2.如果当前节点C的值比A,B节点值都小,那么最低的共同父节点一定在当前节点的右子树中3.在树中从上到下找到的第一个在两个输入节点值之间的节点就是最低的公共祖先二...

2019-05-20 10:15:51 558

原创 面试题67:把字符串转换成整数

题目:将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。边界条件:数据上下溢出空字符串只有正负号有无正负号错误标志输出class Solution {public: int StrTo...

2019-05-19 09:31:47 698

原创 面试题66:构建乘积数组

题目:给定一个数组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]。不能使用除法。//B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]//从左到右算 B[i]=A[0]*A[1]*...*A[i-1]//从右到左...

2019-05-19 09:31:39 173

原创 面试题65:不用加减乘除做加法

题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。public class Solution { public int Add(int num1,int num2) { while (num2!=0) { int temp = num1^num2; num2 = (num1&amp...

2019-05-19 09:31:26 334

原创 面试题64:求1+2+......+n

题目:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。class Solution {public: int Sum_Solution(int n) { int ans = n; ans && (ans += Sum_Solution(...

2019-05-19 09:31:18 512

原创 面试题63:股票的最大利润

题目:假设把某股票的价格按照时间先后顺序储存在数组中,请问买卖该股票一次可能获得的最大利润是多少?例如,一只股票在某些时间节点的价格为{9,11,8,5,7,12,16,14}。如果我们能在价格为5的时候买入并在价格为16的时候卖出,则能收获最大的利润11。思路:定义diff(i)为卖出价为数组中第i个数字时可能获得的最大利润。如果在扫描到数组中的第i个数字时,只要我们能够记住之前的i-...

2019-05-19 09:31:10 1002

原创 面试题62:圆圈中最后剩下的数字(约瑟夫环问题)

题目:0 ~ n - 1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字,求出这个圆圈中剩下的最后一个数字每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱...

2019-05-19 09:31:03 261

原创 面试题61:扑克牌中的顺子

题目:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13...

2019-05-19 09:30:42 454

原创 面试题60:n个骰子的点数

题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。思路:在一轮循环当中,第一个数组总的第n个数字表示骰子和为n出现的次数。在下一轮循环中,我们加上一个新的骰子,此时和为n的骰子出现的次数应该等于上一轮循环中点数和为n-1,n-2,n-3,n-4,n-5,n-6的次数的总和(新的骰子可能投出1~6)。(基于循环,时间性能好)#i...

2019-05-19 09:30:34 438 1

原创 面试题59:队列的最大值

题目一:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{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,5,...

2019-05-19 09:30:27 382

原创 面试题58:反转字符串

题目一:翻转单词顺序牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?//一...

2019-05-19 09:29:59 437

原创 面试题57:和为s的数字

题目一:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。数列满足递增,设两个头尾两个指针i和j,若ai + aj == sum,就是答案(相差越远乘积越小)若ai + aj > sum,aj肯定不是答案之一(前面已得出 i 前面的数已是不可能),j -= 1若ai + aj < sum...

2019-05-18 09:31:28 221

原创 面试题56:数组中数字出现的次数

题目一:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。异或的基本性质:2个相同的数异或等于0,且异或操作(^)满足结合律和交换律。首先:一个整型数组里除了1个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。// 找出数组中只出现一次的数void FindNumsAppearOnce(vector<i...

2019-05-18 09:31:16 344

原创 面试题55:二叉树的深度

题目一:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归版本:class Solution {public: int TreeDepth(TreeNode* pRoot){ if(!pRoot) return 0 ; return max(1+TreeDep...

2019-05-18 09:30:55 260

原创 面试题54:二叉搜索树的第k个节点

题目:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。中序遍历:class Solution { int count = 0;//必须为全局变量public: TreeNode* KthNode(TreeNode* pRoot, unsigned int k) {...

2019-05-18 09:30:49 180

原创 面试题53:在排序数组中查找数字

题目一:统计一个数字在排序数组中出现的次数。解法一:利用C++ stl的二分查找class Solution {public: int GetNumberOfK(vector<int> data ,int k) { auto resultPair = equal_range(data.begin(), data.end(),k); ...

2019-05-18 09:30:44 302

原创 面试题52:两个链表中的第一个公共节点

题目:输入两个链表,找出它们的第一个公共结点。常规代码:/*找出2个链表的长度,然后让长的先走两个链表的长度差,然后再一起走(因为2个链表用公共的尾部)*/class Solution {public: ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) { ...

2019-05-18 09:30:37 204

原创 面试题51:数组中的逆序对

题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007看到这个题目,我们的第一反应是顺序扫描整个数组。每扫描到一个数组的时候,逐个比较该数字和它后面的数字的大小。如果后面的数字比它小,则这两个数字就组成了一个逆序对。假设数组中含有n个数...

2019-05-18 09:30:17 183

原创 面试题50:第一个只出现一次的字符

题目一:字符串中第一个只出现一次的字符在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。class Solution {public: int FirstNotRepeatingChar(string str) { map<char, in...

2019-05-18 09:30:10 185

原创 面试题49:丑数

题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution {public://别人的代码就是精简,惭愧啊,继续学习。 int GetUglyNumber_Solution(int index) { if...

2019-05-18 09:29:59 246

原创 面试题48:最长不含重复字符的子字符串

题目:给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。思路:总共...

2019-05-18 09:29:47 316

原创 面试题47:礼物的最大价值

题目:在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能够拿到多少价值的礼物。1.使用动态规划求解。2.定义一个函数f(i,j),f(i,j)表示达到坐标(i,j)的格子时能够拿到礼物总和的最大值3.已知格子(i,j)只...

2019-05-17 11:13:24 305

原创 面试题46:把数字翻译成字符串

题目:给定一个数字,按照如下规则翻译成字符串:0->a1->b...25->z因此一个数字可能有多种翻译。例如,12258有5种不同的翻译,bccfi,bwfi,bczi,mcfi,mzi。请实现一个函数,计算数字有多少种翻译方法。可以用递归解决,会发现子问题258 58都重复了。自然想到可以用动态规划来解决,用f(i)来表示从第i位数字...

2019-05-17 11:12:30 275

原创 面试题45:把数组排成最小的数

题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。超帅的做法:* 若ab > ba 则 a > b,* 若ab < ba 则 a < b,* 若ab = ba 则 a = b;/*对vector容器内的数据...

2019-05-17 11:10:55 123

原创 面试题44:数字序列中某一位的数字

题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数求任意位对应的数字。从位数为1开始统计不同的位数的数字所占的总位数,如0~9一共占10位,10~99一共占180位…并进行累加,一旦累加的和超过给定的位数,可以找到目标数字的一个大概范围,再进一步进行分析。...

2019-05-17 11:10:13 362

原创 面试题43:从1 到 n 整数中1出现的次数

题目:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路:方法1:最直观的是,对于1~n中的每个整数,分别判断n中的1的...

2019-05-17 11:09:23 219

原创 面试题42:连续子数组的最大和

题目:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和...

2019-05-17 11:06:06 154

原创 面试题41:数据流中的中位数

题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。方法一:最大堆和最小堆注意:priority_queue<int, vector<...

2019-05-17 11:04:40 196

原创 面试题40:最小的k个数!

题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。方法一:堆排序class Solution {private: void heapSort(vector<int> &input, int root, int end){ for(int j = end ...

2019-05-17 11:02:34 224

原创 面试题39:数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路一:数组排序后,如果符合条件的数存在,则一定是数组中间那个数。(比如:1,2,2,2,3;或2,2,2,3,4;或2,3,4,4,4等等)这种方法虽然容易理解,但由于...

2019-05-17 11:00:56 149

原创 面试题38:字符串的排列

问题1:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。思路:"abcde",第一轮,a与b交换,a与c交换,a与d交换,a与e交换, 其中a每次都要回到原来的位置 第二轮,a固定,"bcde"进行上述的情形...

2019-05-17 10:59:15 841

原创 Linux文件IO open、dup、fork内核原理分析

1.open一个文件一个Linux进程启动后,会在内核空间创建一个PCB进程控制块,PCB是一个进程的私有财产。这个PCB中有一个已打开文件描述符表,记录着所有该进程打开的文件描述符以及对应的file结构体地址。默认情况下,启动一个Linux进程后,会打开三个文件,分别是标准输入、标准输出、标准错误分别使用了0、1 、2号文件描述符。当该进程使用函数open打开一个新的文件时,一般...

2019-05-12 21:27:53 923 1

原创 Linux进程进阶

缓冲区必须刷新才可以写到磁盘上int fsync(int fd);//等价于fflush(),刷新同步标准输出一定要加"\n"进行刷新fflush(stdout);一、进程的创建1.system函数<1>一个进程正常启动时间是几百毫秒,而用system("sleep"),要拉起sleep进程,慢<2> system通过./a.out执行后,拉起来了s...

2019-05-12 21:21:31 188

原创 Linux进程基础

Linux进程概述进程控制块:PCB,进程控制块包含了进程的描述信息、控制信息以及资源信息,它是进程的一个静态描述。内核使用进程来控制对CPU和其他系统资源的访问,并且使用进程来决定在CPU上运行哪个程序,运行多久以及采用什么特性运行它,内核的调度器负责在所有的进程间分配CPU执行时间,称为时间片,它轮流在每个进程分得的时间片用完后从进程那里抢回控制权。进程标识OS会为每个进程分...

2019-05-12 21:12:37 214

原创 IO多路转接模型select()函数

简单版通信——一端轮流说一句实现读写同步:1.管道是半双工的,要想实现双向通信,需要设置两条管道2.当写端没写或是管道内缓冲区数据为空,那么读端读数据会发生阻塞;当写端断开,读端读取管道会返回零,会一直while(1)循环,需要ctrl+c结束写端是指给管道内写入数据读端是指从管道内读取数据3.管道的缓冲是4k大小,标准输入大于4k,将会发生踩踏对于1号管道,由...

2019-05-11 17:02:29 235

原创 MMAP文件映射

MMAP文件映射:mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。  注:实际上,mmap()系统调用并不是完全为了用于共享内存而设计的。它本身提供了不同于一般对普通文件的访问方式,进程可以像读写内存一样对普通文件的操作。而Posix或System ...

2019-05-11 16:57:53 573

软件开发者路线图:从学徒到高手

该文档我找了好久,这是最清晰的pdf版,这本书给予人很大的帮助和思考,分享给大家

2017-10-19

Java程序设计之网络编程基础教程课件

Java程序设计之网络编程基础教程课件

2017-07-25

数据结构与算法分析C版

数据结构与算法分析C版

2017-07-25

MasmforWindows安装包

MasmforWindows安装包

2017-07-25

计算机组成原理与汇编语言课件(易小琳 朱文军)清华大学出版社

计算机组成原理与汇编语言课件(易小琳 朱文军)清华大学出版社

2017-07-25

现代操作系统第三版答案

现代操作系统第三版答案

2017-07-25

C++程序设计基础(第4版)周霭如 林伟健 课件

C++程序设计基础(第4版)周霭如 林伟健 课件

2017-07-25

计算机网络-谢希仁第五版电子课件

想好好学好考研必备计算机网络基础的朋友,建议好好看谢希仁老师的经典教材和电子课件,希望能帮到你

2017-05-14

空空如也

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

TA关注的人

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