<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[R_g_Luo的博客]]></title><description><![CDATA[技术分享]]></description><link>https://blog.youkuaiyun.com/R_g_Luo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; R_g_Luo]]></copyright><item><title><![CDATA[Typora(markdown)快捷键]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/103180659</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/103180659</guid><author>R_g_Luo</author><pubDate>Thu, 21 Nov 2019 13:13:31 +0800</pubDate><description><![CDATA[无序列表：输入-之后输入空格
	
	
	有序列表：输入数字+“.”之后输入空格
	
	
	任务列表：-[空格]空格 文字
	
	
	标题：ctrl+数字
	
	
	表格：ctrl+t
	
	
	生成目录：[TOC]按回车
	
	
	选中一整行：ctrl+l
	
	
	选中单词：ctrl+d
	
	
	选中相同格式的文字：ctrl+e
	
	
	跳转到文章开头：ctrl+home
	
	
	跳转...]]></description><category></category></item><item><title><![CDATA[面试题2：实现Singleton模式]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290688</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290688</guid><author>R_g_Luo</author><pubDate>Mon, 20 May 2019 10:16:33 +0800</pubDate><description><![CDATA[实现Singleton模式（要求熟练掌握）

https://blog.youkuaiyun.com/justloveyou_/article/details/64127789

单例模式的要求：类在内存中只能有一个实例

1.该对象不能是全局对象或者栈对象

2.该对象是一个堆对象



静态成员函数与普通成员函数的区别：https://blog.youkuaiyun.com/liujianfei526/articl...]]></description><category></category></item><item><title><![CDATA[面试题1：赋值运算符函数]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290667</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290667</guid><author>R_g_Luo</author><pubDate>Mon, 20 May 2019 10:16:19 +0800</pubDate><description><![CDATA[首先应该考虑异常安全性

https://blog.youkuaiyun.com/bonchoix/article/details/8046727

一个函数如果说是“异常安全”的，必须同时满足以下两个条件：1.不泄漏任何资源；2.不允许破坏数据。（内存泄漏：指程序在申请内存后，无法释放已申请的内存空间）

其次要满足四个点：

1.把返回值的类型声明为该类型的引用，并在函数结束前返回实例自身的引用（*th...]]></description><category></category></item><item><title><![CDATA[面试题68：树中两个节点的最低公共祖先]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290632</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290632</guid><author>R_g_Luo</author><pubDate>Mon, 20 May 2019 10:15:51 +0800</pubDate><description><![CDATA[该题有三种变型：

一、如果该树是二叉查找树，求树中A，B两个节点的最低公共祖先，方法如下：

1.从树的根节点和两个输入节点开始进行比较，如果当前节点C的值比A,B节点值都大，那么最低的共同节点一定在当前节点的左子树中

2.如果当前节点C的值比A,B节点值都小，那么最低的共同父节点一定在当前节点的右子树中

3.在树中从上到下找到的第一个在两个输入节点值之间的节点就是最低的公共祖先



二...]]></description><category></category></item><item><title><![CDATA[面试题67：把字符串转换成整数]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290613</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290613</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:31:47 +0800</pubDate><description><![CDATA[题目：将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能，但是string不符合数字要求时返回0)，要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。



边界条件：

数据上下溢出

空字符串

只有正负号

有无正负号

错误标志输出




class Solution {
public:
    int StrTo...]]></description><category></category></item><item><title><![CDATA[面试题66：构建乘积数组]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290560</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290560</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:31:39 +0800</pubDate><description><![CDATA[题目：给定一个数组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]
//从右到左...]]></description><category></category></item><item><title><![CDATA[面试题65：不用加减乘除做加法]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290502</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290502</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:31:26 +0800</pubDate><description><![CDATA[题目：写一个函数，求两个整数之和，要求在函数体内不得使用+、-、*、/四则运算符号。




public class Solution {
    public int Add(int num1,int num2) {
        while (num2!=0) {
            int temp = num1^num2;
            num2 = (num1&amp...]]></description><category></category></item><item><title><![CDATA[面试题64：求1+2+......+n]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290485</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290485</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:31:18 +0800</pubDate><description><![CDATA[题目：求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 &amp;&amp; (ans += Sum_Solution(...]]></description><category></category></item><item><title><![CDATA[面试题63：股票的最大利润]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290466</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290466</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:31:10 +0800</pubDate><description><![CDATA[题目：假设把某股票的价格按照时间先后顺序储存在数组中，请问买卖该股票一次可能获得的最大利润是多少？例如，一只股票在某些时间节点的价格为{9,11,8,5,7,12,16,14}。如果我们能在价格为5的时候买入并在价格为16的时候卖出，则能收获最大的利润11。



思路：定义diff(i)为卖出价为数组中第i个数字时可能获得的最大利润。如果在扫描到数组中的第i个数字时，只要我们能够记住之前的i-...]]></description><category></category></item><item><title><![CDATA[面试题62：圆圈中最后剩下的数字(约瑟夫环问题)]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290446</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290446</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:31:03 +0800</pubDate><description><![CDATA[题目：0 ~ n - 1这n个数字排成一个圆圈，从数字0开始，每次从这个圆圈中删除第m个数字，求出这个圆圈中剩下的最后一个数字



每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱...]]></description><category></category></item><item><title><![CDATA[面试题61：扑克牌中的顺子]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290419</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290419</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:30:42 +0800</pubDate><description><![CDATA[题目：LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿！！“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13...]]></description><category></category></item><item><title><![CDATA[面试题60：n个骰子的点数]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290399</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290399</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:30:34 +0800</pubDate><description><![CDATA[题目：把n个骰子扔在地上，所有骰子朝上一面的点数之和为s。输入n，打印出s的所有可能的值出现的概率。



思路：在一轮循环当中，第一个数组总的第n个数字表示骰子和为n出现的次数。在下一轮循环中，我们加上一个新的骰子，此时和为n的骰子出现的次数应该等于上一轮循环中点数和为n-1,n-2,n-3,n-4,n-5,n-6的次数的总和（新的骰子可能投出1~6）。(基于循环，时间性能好)




#i...]]></description><category></category></item><item><title><![CDATA[面试题59：队列的最大值]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290372</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290372</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:30:27 +0800</pubDate><description><![CDATA[题目一：给定一个数组和滑动窗口的大小，找出所有滑动窗口里数值的最大值。例如，如果输入数组{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,...]]></description><category></category></item><item><title><![CDATA[面试题58：反转字符串]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290293</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290293</guid><author>R_g_Luo</author><pubDate>Sun, 19 May 2019 09:29:59 +0800</pubDate><description><![CDATA[题目一：翻转单词顺序

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


//一...]]></description><category></category></item><item><title><![CDATA[面试题57：和为s的数字]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290254</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290254</guid><author>R_g_Luo</author><pubDate>Sat, 18 May 2019 09:31:28 +0800</pubDate><description><![CDATA[题目一：输入一个递增排序的数组和一个数字S，在数组中查找两个数，使得他们的和正好是S，如果有多对数字的和等于S，输出两个数的乘积最小的。



数列满足递增，设两个头尾两个指针i和j，

若ai + aj == sum，就是答案（相差越远乘积越小）

若ai + aj &gt; sum，aj肯定不是答案之一（前面已得出 i 前面的数已是不可能），j -= 1

若ai + aj &lt; sum...]]></description><category></category></item><item><title><![CDATA[面试题56：数组中数字出现的次数]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290214</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290214</guid><author>R_g_Luo</author><pubDate>Sat, 18 May 2019 09:31:16 +0800</pubDate><description><![CDATA[题目一：一个整型数组里除了两个数字之外，其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。



异或的基本性质：2个相同的数异或等于0，且异或操作(^)满足结合律和交换律。



首先：一个整型数组里除了1个数字之外，其他的数字都出现了两次。请写程序找出这个只出现一次的数字。


// 找出数组中只出现一次的数
void FindNumsAppearOnce(vector&lt;i...]]></description><category></category></item><item><title><![CDATA[面试题55：二叉树的深度]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290193</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290193</guid><author>R_g_Luo</author><pubDate>Sat, 18 May 2019 09:30:55 +0800</pubDate><description><![CDATA[题目一：输入一棵二叉树，求该树的深度。从根结点到叶结点依次经过的结点（含根、叶结点）形成树的一条路径，最长路径的长度为树的深度。



递归版本：


class Solution {
public:
    int TreeDepth(TreeNode* pRoot){
        if(!pRoot) return 0 ;
            return max(1+TreeDep...]]></description><category></category></item><item><title><![CDATA[面试题54：二叉搜索树的第k个节点]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290164</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290164</guid><author>R_g_Luo</author><pubDate>Sat, 18 May 2019 09:30:49 +0800</pubDate><description><![CDATA[题目：给定一棵二叉搜索树，请找出其中的第k小的结点。例如， （5，3，7，2，4，6，8）  中，按结点数值大小顺序第三小结点的值为4。



中序遍历：




class Solution {
    int count = 0;//必须为全局变量
public:
    TreeNode* KthNode(TreeNode* pRoot, unsigned int k)
    {
...]]></description><category></category></item><item><title><![CDATA[面试题53：在排序数组中查找数字]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290115</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290115</guid><author>R_g_Luo</author><pubDate>Sat, 18 May 2019 09:30:44 +0800</pubDate><description><![CDATA[题目一：统计一个数字在排序数组中出现的次数。

解法一：




利用C++ stl的二分查找
class Solution {
public:
    int GetNumberOfK(vector&lt;int&gt; data ,int k) {
        auto resultPair = equal_range(data.begin(), data.end(),k);
     ...]]></description><category></category></item><item><title><![CDATA[面试题52：两个链表中的第一个公共节点]]></title><link>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290078</link><guid>https://blog.youkuaiyun.com/R_g_Luo/article/details/90290078</guid><author>R_g_Luo</author><pubDate>Sat, 18 May 2019 09:30:37 +0800</pubDate><description><![CDATA[题目：输入两个链表，找出它们的第一个公共结点。



常规代码：




/*
找出2个链表的长度，然后让长的先走两个链表的长度差，然后再一起走
（因为2个链表用公共的尾部）
*/

class Solution {
public:
    ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) {
        ...]]></description><category></category></item></channel></rss>