自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方寸间沧海桑田的博客

欲买桂花同载酒,终不似,少年游。https://github.com/1802802

  • 博客(118)
  • 资源 (1)
  • 收藏
  • 关注

原创 从1-N的数字里选出M个数字组成一个数组,要求每个数字在每个位置的期望相同

题目:从1-N的数字里选出M个数字组成一个数组,要求每个数字在每个位置的期望相同1.洗牌算法思想//1.思路为借助洗牌算法的完全随机性,选其中的M形成数组vector<int> NewArray(int n, int m){ if (n < m) return vector<int>(); vector<int> base(n); ...

2019-08-09 21:20:11 879

原创 【剑指offer】面试题63 六种买卖股票问题

本文结合剑指offer的63题与leecode上的六种买卖股票问题进行了总结,综合来说,就是需要不断地考虑在不同的条件下,dp[i][k][j]的产生条件,往往为前一位与前一位买卖的相关操作的最大值。1.第一种股票问题(单次买卖)动态规划实现第一类股票问题,单次买入卖出如果将最低收益设为0,那么初始值为0;如果考虑负收益 ,则初始值为INT_MIN思路1:动态规划,计算每个位置的...

2019-08-08 16:17:58 936

原创 9.3.6 容器操作可能使迭代器失效

向容器中添加元素和从容器中删除元素的操作可能会使指向容器元素的指针、引用或迭代器失效。一个失效的指针、引用或迭代器不再表示任何元素。1.在容器中添加元素后如果容器是vector或string,且存储空间被重新分配,则指向容器的迭代器、指针和引用都会失效。如果存储空间为重新分配,指向插入位置之前的元素迭代器、指针和引用仍有效,但指向插入位置之后元素的迭代器、指针和引用均会失效;对于deq...

2019-08-07 17:15:21 280

原创 优雅的归并排序算法和普通的归并排序算法

今天刷题时发现之前学习的归并排序算法是邓公的数据结构上的一种优化后的很优雅的归并排序算法,直接导致了我现在再看之前写的看不懂自己写的什么东西了。。。所以在此记录一下优雅的归并排序算法和普通的归并排序算法。1.归并排序思路大概就是不断地将一个数组二分,直到所有的数组变成了单个数时return,然后在之后不断地排序两个两个的小数组,直到最后归并完成完成排序,其主体函数mergesort的常规...

2019-08-03 18:40:58 214

原创 拼多多笔试第四题的试探回溯法实现与思路分享

今天参加了拼多多服务端工程师的提前批笔试,做的很烂,感觉自己在对于笔试题的处理上确实还不够完善,需要磨练。值得一提的是最后一题知道思路,在考试的时候写出了试探回溯的框架,但是时间太短了人也太紧张了有些细节没有优化好导致最后还是没有完成。考完后吃了个饭又重新按思路实现出来了,由于不能再去调试测试了所以也不清楚到底做的怎么样,只通过了测试用例,所以麻烦大家看一下,如果有问题欢迎指正。1.数据处理...

2019-07-28 20:05:02 330

原创 【剑指offer】面试题15 二进制中1的个数

到这里第二章就结束了,之后的题目我将会以章的结构来统一撰写博客,毕竟一篇一篇地写意义不太高1.考点考点1:二进制的运用:与&,或|,异或^三种运算符的巧用;考点2:对于正负数的二进制理解:32位系统,共有0-31共32位的数据,其中第31位为符号位,正数为0负数为1,所以正数的int范围为(1,231-1),负数的int范围为(-231,-1);考点3:对于正负数的计算机表述...

2019-07-25 17:49:19 174

原创 【剑指offer】面试题14 剪绳子

1.考点考点1:动态规划:核心思想为“从上到下分析问题,从下往上解决问题”,另外的三个特性为:① 求一个问题的最优解(最大值/最小值);② 整体最优解 = 各个子问题的最优解相加; ③ 小问题之间有共同的各个子小问题;这些是动态规划的特性,在分析问题时可以从这些角度来考虑,当然核心思想不仅仅只用在这些问题,可以用在很多相关问题里。(比如推导出了递推类公式:f(n) = max(f(i)*f(n...

2019-07-25 15:45:06 193

原创 【剑指offer】面试题13 机器人的运动范围

1.考点考点1:对于二维数组的遍历理解,其往往是个一维数组存储,将其理解为二维数组,那么在知道二维数组的行rows与列cols的情况下,任意的位置即为row*cols+col;考点2:试探回溯法在不同的寻路问题中的使用情况,比如本题其实主要是使用了深度优先的试探方法,其回溯过程其实并没有很明显的体现,主要就是在完成一个分支后return count值,而随着分支的不断结束而不断地进行下一个递...

2019-07-25 11:04:16 300

原创 【剑指offer】面试题12 矩阵中的路径

1.考点考点1:试探回溯法的运用:这个方法说穿了就是迷宫寻径,被称为“蛮力法”的升级版确实不为过,主要就是在各个方向不断地向前试探,直到试探到尽头则依次回溯。这种方法没有最快的到达终点的办法,一直都是属于有哪条路就走哪条路,某种意义上和深度优先搜索算法比较接近,不过试探回溯的本质是有序的,深度优先搜索的本质是无序的。考点2:对于递归与试探回溯的联合运用:试探回溯法的中的回溯操作,往往是借助递...

2019-07-24 22:12:28 285

原创 【剑指offer】面试题11 旋转数组的最小数字

1.考点考点1:对二分查找的深度理解,虽然二分查找只能找排序的数组,但是本题是属于排序数组的变种,可以分解为两个排序数组来考虑,而与之对应类似情况也应该多考虑;考点2:对新知识的理解能力,数组旋转这个词可能有很多种定义,而数组的排序方式也可能有正有反,比如此题中数组为正序排列,如果是反序排列的话那么所有代码都要反着来写,所以一是要快速且准确地理解新概念,二是不懂就要问;2.代码代码写...

2019-07-24 15:46:02 230

原创 【剑指offer】面试题11前置 查找与快排

1.考点:考点1:对于二分查找的多种实现方式(ABC),不同版本的特色不同;考点2:Fibonacci查找的实现方式,以及其具体时间复杂度的了解;考点3:快速排序算法的思想以及实现方式(核心为快速划分算法);2.代码三种二分查找实现的过程都是小不同,但是特色均不同,主要是记住A这种最基本的形式,同时切记二分查找被用于排序数组,不要使用到无序查找中;Fibonacci查找实际上比A...

2019-07-24 12:06:27 231

原创 【剑指offer】面试题10 斐波那契数列与跳台阶

1.考点考点1:斐波那契数列的多种实现方式掌握,以及其变种的掌握(前移或后移);考点2:对于递归与循环的概念的理解程序;2.思想思想的核心就是要知道,使用递归代码确实会简洁,但是会导致不必要的内存占用率;而使用循环往往代码结构较为复杂一些,不过内存占用很少,结合两种思想的动态规划方法相对来说最简洁且空间利用率也低,不过传统的递归时间复杂度为O(2^n),而改进后的众多迭代、递归与动态...

2019-07-23 21:16:47 177

原创 【剑指offer】面试题9 两个栈实现队列/两个队列实现栈

1.考点:考点1:栈和队列的运行机制理解,以及两者之间的相互关系理解;考点2:模板的理解(模板写的比较多了所以这里没用模板写)2.思想队是先进先出,栈是先进后出,两者相互实现时,把思路理清就OK。(1)两个栈实现队列:两个栈当两个杯子A和B,加水(push)都往A里面push;而删除(pop)都从B的顶端进行删除,当B中没有水时,向A申请加水,A会把所有的水全部倒进来,然后B倒出最...

2019-07-23 18:31:18 145

原创 【剑指offer】面试题8 二叉树的下一节点

1.考点考点1:对于中序遍历的理解;(也要对此拓展到前序遍历与后序遍历)考点2:如何在一个二叉树中找到一个点的下一个点;(二叉树的结构理解)2.思路二叉树的前中后序遍历中,每种的遍历方式不同,对于找到某一个点的下一个点或上一个点的问题,只需要绘制出二叉树图,然后假设某一点为某节点的左节点/右节点,以及假设其有左子树也有右子树,那么这个节点就是一个X型结构,这个X型节点根据所述的上一节...

2019-07-23 17:35:21 175

原创 【剑指offer】面试题7 重建二叉树

1.考点考点1:二叉树的前中后遍历方式,以及三者独特的特性;考点2:递归的原理辨析(递归三类中的多路递归,就是多叉树结构);2.解题(1)前/后序遍历时,其根节点位于首/尾位置,而其余的字段可以被分成左子树和右子树,而两者的左子树和右子树内部,又可以分为多个左子树和右子树,并且两两分离,不会有穿插。(2)中序遍历时,根节点在遍历中间,而左右两侧分别为嵌套的左子树和右子树,与前/后序...

2019-07-23 14:12:34 146

原创 构造函数、析构函数与虚函数的三连问

最近在温习C++,想到了这个问题,查找了一些资料之后描述如下1.构造函数能不能是虚函数?(1)答案:不能,并且在编译器上写时后都会报错,就像下面这样。(2)原因:这是一个来自2002就很火的问题,结合《程序员面试宝典》与知乎用户左轻侯的回答来说,就是:虚函数采用一种虚调用的方法,这是一种可以在只有部分信息的情况下工作的机制,特别允许我们调用一个只知道接口而不知道其准确对象类型的函数。...

2019-07-22 15:47:29 189

原创 【Leecode初级算法—数组】解题思路总结

最近刷了初级算法的数组里面的题,总结出了对于数组类问题的解决方法1.暴力法暴力法往往简单易想,当然其效率往往不是最好的,但是如果实现想不出优秀的方案,最好还是写出暴力法的解决方法,并且有总比没有好2.双指针法双指针是泛用性最强的一个算法,其主要适用于数组中从前往后,或从后往前的数据交换过程,通过前后两个/首尾两个指针指向不同的数据,来进行数据的交换或处理。3.逻辑特性分析法...

2019-07-22 10:57:24 334

原创 对于递归思想的一点理解

对于递归的理解很早已经就开始了,但是一直都云里雾里的,今天参照网上的众多资料,自己捋了捋,大概的想法如下:一、递归的基本思想(1)递归含义:递归就是递和归,递到最基本的递归基之后根据之前的路归回去;而循环往往就直接是归回去这条路,但是没有递的路标就往往很难走;(2)递归与循环的区别:递归适合从大往小推,而循环适合从小往大推,而递归难以实现从小往大,但是循环却可以实现从大往小;递归就是把...

2019-07-20 22:52:49 3083

原创 【剑指offer】面试题7前置 二叉树的数据结构实现

这几天尬在二叉表的实现了,发现删除节点是真的写的头疼,最后还是没有实现。迭代遍历也是,但是掌握了思想之后也还是能实现,大概就这样吧1.二叉树类与二叉树节点类template<typename T> class BinaryTreeNode{public: T m_value; int m_height; BinaryTreeNode() {} BinaryTreeN...

2019-07-16 22:04:13 187

原创 【剑指offer】面试题6 从尾到头打印链表

1.主旨这道题就是一个很基本的对于单向链表结构的考察,而单向链表的节点结构最基本的就是一个value值和一个next指针,只要清楚这一点,那么无论是从尾到头打印、存储,抑或是从头到尾打印、存储就都变成了简单操作的事情。2.考点考点1:单向链表的结构与基本节点格式;考点2:对于栈结构与递归关系的理解,以及两者与循环的区别理解;3.代码3.1 栈结构存储使用stack来从头到尾...

2019-07-11 09:49:24 149

原创 【剑指offer】面试题6前置 双向链表的实现

1.主旨这是对于面试题6中的单向链表的前置实验,本人参照所学的《数据结构(C++语言版)》对双向链表进行了大概实现(单向链表即不使用前继或者后继)。所用的链表实现方式为头尾哨兵节点法,通过两个哨兵位置的恒定性,拓展出双向链的结构形式。2.考点考点1:链表实现时的基本节点ListNode的结构形式(value值,前继后继);考点2:单向/双向链表的基本结构实现,如初始化与析构函数;考...

2019-07-10 22:03:07 289

原创 【剑指offer】面试题5 替换空格

1.主旨这道题的关键是理解题意,书中作者明确说明了,这种类型的题目总会有就地/不就地处理模式,以及字符串长度管理的问题,而书中的假设是“进行就地处理,并且保证输入的字符串本身就具有足够的空间”。所以,对于此题的实现可以非常快速地定位到两种解决方案:从前往后的将空格变为%20,或者从后往前的将空格变为%20。2.考点考点1:注意审题:如果字符串本身的长度不够,那么就必须进行非就地处理,其...

2019-07-10 09:25:05 290

原创 【剑指offer】面试题4 二维数组中的查找

1.主旨理解二维数组的含义,比如数组是从0开始数的,储存方式是链式的矩阵(对于C++来说就是Vector包Vector),整体相对很简单,易于理解2.考点考点1:理解二维数组也是连续的空间,连续的编号对应的是连续的内存,可以快速访问;考点2:善于发现查找对应值的比较方式,比如从右上角/左下角来进行没有重复区间的范围缩小,同时注意可能题目变形,使之从左上/右下来计算3.代码方法...

2019-07-09 20:41:16 177

原创 【剑指offer】面试题3 数组中重复的数字

1.主旨考察数组本身的概念,以及在数组中实现对应数的查找。题目本身的含义很容易理解,所以对于这种简单的题目应该多从时间复杂度与空间复杂度这两个角度进行思考,这样才能体现出自己的思想优势。2.考点考点1:数组与指针的概念:数组占据着一块连续的内存储存数据,而指针是占着最小内存区间(通常为4B)的存储地址区间的变量。数组的名字为指向数组第一个元素的指针(比如a[2]就是从首元素向后移动三位...

2019-07-09 19:58:08 194

原创 【剑指offer】面试题2 单例模式Singleton

1.主旨标准的单例模式考察过程,而在设计模式中单例模式可以分为“饿汉式”与“懒汉式”,对于这两种方式的具体讲解可以查看我之前的文章设计模式学习(一) 单例模式 Singleton。在此之外,单例模式的同时还需要考虑多线程以及优化方面的考虑,所以这里参照书上的例子,实现了四种格式的单例模式。2.考点考点1:单例模式的基本单线程实现,包括饿汉式与懒汉式;考点2:单例模式的基本多线程实现,...

2019-07-09 14:25:03 206

原创 【剑指offer】面试题1 赋值运算符函数

1.主旨这道题主要是为了考察赋值运算符的重载,已经对于指针变量的拷贝时,其自身内存的管理(清理与查重)2.考点考点1:拷贝构造函数的标准格式:CMyString& 之类的标准引用(用于实现连续赋值,即保证返回的参数能作为输入的参数);考点2:拷贝构造函数的标准格式:(const CMyString& str)这样的常量引用传入参数,避免一次拷贝构造函数的调用;考点3:是...

2019-07-04 22:05:09 190

原创 【SQL基础教程】【四至七章】总结归纳与思维导图

SQL基础教程第四章 数据更新4.1 数据的插入INSERT4.1.1 基本语法(1)INSERT INTO <表名> (列名1,列名2,……) VALUES (值1,值2,……);(2)插入多行时可以省略之后的VALUES标识,直接括号打过去4.1.2 列清单的省略全列INSERT时直接省略列名清单4.1.3 插入NULL与默认值(1)NULL...

2019-06-29 09:45:55 599

原创 【SQL基础教程】【一至三章】总结归纳与思维导图

写在前面:最近又看了下数据库,先是看了之前看的《MySQL必知必会》,还是感觉书的逻辑混乱,看的有点混沌,所以又拿起了之前的《SQL基础教程》,以前是为了使用先看了前三章,现在又补了四到七章,所以前三章的总结更为全面一些,后面四章可能就水一点啦哈哈,在此分两拨把这本书的思维导图和总结发布出来吧第一章 数据库和SQL1.数据库(DB)通过计算机加工而成的可以进行高效访问的数据集合称为数据库...

2019-06-29 09:43:07 1509 1

原创 【操作系统原理概述】第九章 文件系统

第九章 文件系统9.1 文件系统概念9.1.1 文件的定义:计算机存取的一种重要组织形式9.1.2 文件分类(1)用途分类:系统、库、用户文件(2)操作权限:只读,读写,不保护文件(3)文件性质:普通,目录,设备文件9.1.3 文件属性(1)文件内部的信息存放在文件目录的目录文件中(2)MS-DOS中,文件属性占目录项1个字节9.1.4 文件系统管理...

2019-06-14 17:18:56 363

原创 【操作系统原理概述】第八章 设备管理

第八章 设备管理8.1 设备管理概念(1)设备分配:按策略为进程分配设备(2)设备映射:物理设备(I/O)系统中实际安装的设备;逻辑设备(应用软件使用的设备)(3)设备驱动:控制物理设备实现I/O操作,将应用的服务请求转换为具体I/O指令;向用户提供统一接口(read,write,open等)8.2 Spooling系统8.2.1 设备(1)独占性设备:所有字符串设备(如打...

2019-06-14 17:17:30 351

原创 【操作系统原理概述】第七章 存储管理

第七章 存储管理7.1 内存管理功能7.1.1 实现方式(1)结构:CPU CACHE 内存 辅存(2)原理:内存小时,辅存支援内存;暂不用的模块转为辅存,必要时转为内存7.1.2 地址映射(装入)定义:程序中的虚拟地址→真实物理地址(1)固定地址映射:编译时直接确定好内存中位置(2)静态地址映射:程序装入(如双击图标时)时操作系统决定(3)动态地址映射:执行过程中...

2019-06-14 17:15:42 354

原创 【操作系统原理概述】第六章 进程调度

第六章 进程调度6.1 进程调度概念(1)在合适时间以一定策略选取一个就绪进程运行(2)保证响应快,处理快,吞吐量大,利用率高,公平,避免饥饿(3)量化单位:周转时间和带权周转时间6.2 典型调度算法(1)先来先服务调度:队列(2)短作业优先调度:最短运行时间优先(3)响应比高者优先:响应比 = 响应时间(等时+运时)/运时(4)优先数调度:静态优先数(创建时指定) + 动...

2019-06-14 17:14:11 300

原创 【操作系统原理概述】第五章 死锁

第五章 死锁5.1 死锁概念5.1.1 五个哲学家就餐问题5.1.2 死锁的定义(1)两个/多个进程无限期地等待永远不会发生的条件的一种状态(2)已经拥有了资源又申请其他进程的资源5.2 死锁的原因(1)系统资源有限(2)并发进程推进顺序不当(3)不正确的P-V操作(如生/消问题中的P(empty)和P(mutex)的顺序问题(4)死锁结论:参与死锁的进程至...

2019-06-14 17:11:53 353

原创 【操作系统原理概述】第四章 进程管理

第四章 进程管理4.1 进程概念4.1.1 进程概述(1)定义:程序在某个数据集合上的一次运行活动(2)特性:动态性(程序为静态长存),并发性,异步性,独立性(作为系统分配与调用CPU的单位)(3)类型:系统和用户进程;计算型进程和I/O进程(用户交互)4.1.2 进程状态运动、就绪、阻塞态4.1.3 LINUX进程状态可运行、阻塞、僵死、挂起态...

2019-06-13 20:57:27 443

原创 【操作系统原理概述】第三章 操作系统用户界面

第三章 操作系统用户界面3.1 BIOS和主引导记录MBR3.1.1 计算机工作模式(1)实模式:实地址模式(2)保护模式:内存保护模式(3)系统BIOS(基本输入输出系统):不属于硬件与软件,属于固件(以硬件存在的软件);功能:引导启动配置→基本的设备I/O服务→加电自检和自举(4)开机后BIOS顺序:加电自检POST→查找显卡BIOS,调用显卡BIOS→依次查找其他设备执行相...

2019-06-13 20:55:08 886

原创 【操作系统原理概述】第二章 操作系统逻辑结构

第二章 操作系统逻辑结构2.1 操作系统的逻辑结构2.1.1 整体式结构模块为单位2.1.2 层次结构类似TCP/IP协议栈2.1.3 微内核结构Window和Minix为代表2.1.4 单体内核结构Linux为代表2.2 CPU的态2.2.1 基本硬件结构CPU,内存,中断,时钟2.2.2 CPU的态指CPU的工作状态...

2019-06-13 20:53:46 795

原创 【操作系统原理概述】第一章 操作系统概述

写在前面:蛰伏了一段时间,这十几天在MOOC上参考本校的苏老师将操作系统相当于走马观花的看了一遍,不能说老师讲的有多好(毕竟MOOC不比课堂,很多精华可能难以涉及),也不能说自己学的有多好(毕竟我也只是走马观花的看一遍)。不过在学习过程中也在笔记本上记了也有接近半个本子的笔记,想着本子的记录不如网络来的持久,于是乎在此将这段笔记转换为网络博客,作为学习完毕后的一个落实积累吧学习地址:http...

2019-06-13 20:50:51 416

原创 关于【定义一个宏,求两个数中的最大数】问题的C++思考

 在知乎的https://www.zhihu.com/question/22465774/answer/660997629问题中看到了“宅学部落”发表的回答,对于其中的【定义一个宏,求两个数中的最大数】问题感触颇深。今年寒假去华为面试实习的时候就被问到了这个问题,当时基础知识掌握的并不牢靠,非常惭愧地连最简单的都没写对= =。今日看到此文,才发现其中含义颇深。 回答中的前几种如:#define...

2019-06-03 21:33:53 886

原创 【图解TCP/IP 归纳】第九章 网络安全

第9章 网络安全9.1 TCP/IP与网络安全避免非法访问与恶意攻击9.2 网络安全构成要素9.2.1 防火墙种类与形态多样,比如专门过滤(不过滤)特定数据包的包过滤防火墙、数据到达应用以后由应用处理并拒绝非法访问的应用网关9.2.2 IDS(入侵检测系统)(1)定义:数据包只要符合安全策略,则防火墙会允许其通过,而IDS正是用于检查这种已经侵入内部网络进行非法访问的情况,...

2019-05-31 18:13:00 399

原创 【图解TCP/IP 归纳】第八章 应用协议

第8章 应用协议8.1 应用层协议概要定义:应用协议是为了实现某种应用而设计和创造的协议,而TCP和IP等下层协议是不依赖上层协议的适用性非常广的协议8.2 远程登录8.2.1 TELNET(1)基本:用于仿真终端或协商机制,其基本实现本地用户的操作命令可以传递到远程用户的Shell中实现操作(2)选项:对于交互功能的选择与协商,比如TELNET的输入模式分为行模式与透明模式两种(...

2019-05-31 18:05:07 524

查到的一个不错的简历模板

这是一个我下载的简历模板,感觉还可以,所以选择 上传一下

2019-02-27

空空如也

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

TA关注的人

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