自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 阿里巴巴校园招聘2019面试总结

写在前面 面的岗位是c++开发,二面跪了,但依然想些出来分享一下。博主4月份开始着手找实习,期间面过两次阿里都挂在第一面,7月份至今在科大讯飞实习,这期间内推阿里,做第三次尝试。一面:自我介绍,项目介绍。问基础:算法数据结构相关:C++map,hastable什么区别以及各自特点,为什么map底层要用红黑书实现。讲一下归并排序,快速排序的实现,为什么用快排用的多?i...

2018-08-03 14:58:51 3453

原创 TCP/IP 体系结构的一些干货

想必很多人都听过一些经典的问题:TCP三次握手 四次挥手是啥,TCP和UDP什么区别?HTTP又是啥?我想从更科普的角度讲一下我看完计算机网络之后的一些体会:想象一下,我们通信手段一直在变,从烽火狼烟,飞鸽传书,走镖,邮寄,到电话,视频,互联网,甚至量子通信,但不变的一直都是 数据传输的可靠性,准时性等,因此互联网在实践中被不断的完善。要想实现可靠性和准时性等(等是因为我总觉得漏了...

2018-07-23 20:27:19 785

原创 WPF中 PCM 转 WAV

个人写博客的格式一般是,遇到什么问题,思路是什么,怎么解决的,最终做到什么程度。问题描述:PCM 音频文件 如何 转化为WAV 文件 并在 WPF中播放出来。思路:我是做项目要做这一块,根本不知道有啥区别,前辈的代码里面在前面加了44个字节,网上的代码也是。解决:据我判断和浅显的推理(依据上一篇博文所获得经验):PCM这个二进制的音频文件确实描述了音频信息,但是想要播放PCM文件就不等...

2018-07-23 19:53:27 308

原创 字符编码的问题

最近做项目的时候遇到些问题:大致是这样子的,一个进程给我发了一段信息,我通过编解码来获得这段信息是什么并显示出来。我的逻辑是这样的:它给我发的东西应该是通过一定方式编码得到的二进制流,那么我通过一定的方式解码就可以显示信息。但他的代码表现出来的逻辑是 把想要发送的文件先通过一定的编码方式 读成 string 然后解码为 二进制再发送,我这边怎么调都有乱码。最终问题定位到他的发送 部...

2018-07-23 19:41:30 157

原创 二叉树的建立(2019年编辑超级实用)

最近刷题的时候发现要用到树的结构,当时脑子就宕机咯,不知道怎么建立一个自己需要的树,这篇博文介绍了如何建立一个二叉树。不同于剑指offer或者书上讲的给定先序遍历的数组和中序遍历的数组来唯一确定一棵树,我给出的是已知二叉树的结构在自己的白纸上,怎么建立它。已知一颗二叉树在白纸上,我的习惯是把它变成一个二维数组(也就相当于层序遍历,但是在结点为null的位置插入0),之后依据这个二维的数组建立一个对...

2018-07-12 09:48:23 674

原创 2019校招大疆笔试题计算期望

题目见图,大致意思是n天计划来减肥,每天分为减肥a斤和增重b斤以及对应的概率,问n天后博主的体重的期望是多少。思路:搜一下期望定义写出最终所求的公式:最终体重*该体重对应的概率 求和即可。采用树的结构来实现这个公式。然后找到这个树对应的所有路径 再按照公式计算。下面给出构建二叉树的代码,和找到所有路径的代码,按照公式计算没写因为牵扯到分数类型的运算,我不知道标准库里面有没有,难道还...

2018-07-11 09:19:07 3996

原创 2019大疆PC软件开发笔试题第一题电路板

题目描述见图解题思路:遍历二维数组B(存储灯泡亮暗信息),将暗灯泡下标ij对应的二维数组A的值置为0(A被初始化为全1);遍历数组A 为1 时去访问数组B 所对应的行列是否存在0,存在0说明与题设矛盾输出false即可。...

2018-07-09 20:07:33 1009

原创 腾讯2018暑期实习生招聘感受,岗位是后台开发TEG事业群。

写在前面:以前看过一个说法,你在面试大概进行到一半的时候基本就确定自己是否通过了,这里我用实际例子给出反正,面试完还是收心等结果为好。我的面试官人特别好,是校友,还是本家。面试时间是2018年的4月15号下午上来第一步自我介绍,然后介绍简历里面的项目,简历里面写了两个项目,第一个项目是师兄的,跟面试官表示不想讲,同意,讲第二个项目。讲完之后面试官没有就这个项目展开问问题,因为我清晰的表达出这是我全...

2018-04-17 09:29:19 3500

转载 2018年网易实习生笔试题集合之牛牛的背包问题

问题描述,想必大家都知道01背包问题,现在的情况是问有多少种装填背包的方式。思考:昨晚想了一晚上没能想明白用动态规划这题该怎么做,状态转移方程神马的真不知道怎么写(希望评论大神给点助攻)不用动态规划这题怎么思考呢?只能暴力枚举了,讲道理枚举都不是那么好写。#include<bits/stdc++.h>using namespace std;int n,w;vector<in...

2018-04-09 09:22:30 651

原创 2018年网易实习生笔试题集合之牛牛的闹钟

问题描述:A时B分上课,牛牛到教室要X分钟,所以牛牛最晚什么时候起床。思考:不用思考,简单题最晚当然是 上课时间-从宿舍到教室花费的时间。代码如下:#include<bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; set<int> aSet; fo...

2018-04-08 20:52:12 298

原创 2018年网易实习生笔试题集合之矩形重叠

问题描述:求有多少个矩形重叠。思考:这道题讲道理很难,难在你需要思考怎么去表示矩形重叠。我一开始的想法是将这些矩形按照左下角的x值的大小排序,然后依次拿来矩形做比较,然后开始写代码发现写不出来。换条路(这里我参考咯大佬的想法),思考假如把矩形重叠换成线段重叠该怎么处理:发现线段重叠的特点是必然包含线段的端点。那么对矩形而言是不是重叠的矩形中必然包含矩形的顶点呢?思路:显然没那么简单,因为有些重叠的...

2018-04-08 20:41:44 403

原创 2018年网易实习生笔试题集合之数对

问题描述:                整数对(x,y)x,y都不大于n ,且x%y 大于等于 k。问有多少这样的数对。思考:最简单的来想 当然是双层循环咯,但是当然复杂度太高不行。参照前面一个求余数的问题,我们会想到是否也会有规律。对k = 0;有n^2个对k =1;y应该从k+1~n 在x从1~n的过程中余数在从 0~y-1 一直做循环。            例如此时y = 2.那么余数是...

2018-04-08 19:41:00 297

原创 2018年网易实习生笔试题集合之迷路的牛牛

题目描述:本题直接贴代码吧,估计没人搜这个。#include<bits/stdc++.h>using namespace std;int main(){ int n; string s; cin >> n >> s; int res = 1; for(int i = 0; i < n; ++i) { ...

2018-04-08 16:42:50 251

原创 2018年网易实习生笔试题集合之安置路灯

问题描述:只包含. x 的一个队列,其中. 表示需要被照亮的地方,一个路灯可以照亮三个位置,                照亮这个队列中所有的. 该如何放置路灯使得路灯的数量最少。思考:这种题的关键就在于该如何放置路灯,而且要明确这种题就是简单题不要想别的。很明显,我们处理该问题一定因该是遍历这个数列,遇到. 的时候当然要放置路灯咯,因为它需要被照亮,那么放在什么位置才能满足使得路灯的数量最少呢...

2018-04-08 16:25:34 415

原创 2018年网易实习生笔试题集合之被3整除

问题描述:有一个神奇的数列,计算这个数列有多少个数能被3整除。思考:这种问题蛮有意思的,因为它考验的其实就是从不同的角度看问题的能力,但说实话在有限的时间内能get到这个点的除了智商高就是向你们这样肯刷题的咯(反正当时我没过T-T),言归正传,任何一个数对3求余数不外乎3个数,0,1,2。显然这道题是让求对3求余数等于 0 的情况都有谁。观察分析第一个数对3求余是1,第二个是 0,第三个是 0,然...

2018-04-08 16:07:50 459

原创 2018年网易实习生笔试题集合之牛牛找工作

1.牛牛找工作问题描述:n种工作 每个工作有一个难度指数d,和一个报酬p                m个人,每个人有一个能力指数a。                帮助这m个人找到报酬最大的工作。思考:采用合适的数据结构来存储和处理题目给的数据,于是采用stl中的map,因为map在处理这种一一对应的两个值时有优势,如果想要使用vector那就必须自己定义一个结构体。思路:用map将这些d和p...

2018-04-08 14:56:40 510

原创 链表总结

链表与栈、队列一样,是一种基本的数据结构,有着不支持随机访问的特点。 以单向链表(也是较为常见的)为例,都应包含一个元素和一个存储下一个节点的指针。struct ListNode{ int data; ListNode* next;}下面给出关于链表的一些基本操作。 1.通过数组来创建一个链表: constract1 方法是将元素依次插入链表的后面。 constract2

2017-12-04 19:59:18 155

原创 华为部门宣讲会后感及求职的一点体会

博主现在(2017.8.25)是一名研究僧,19年3月份毕业,相当于提前一年来参加2017年的秋招宣讲,毕竟笨鸟要先飞。1.定位:首先最重要的是明确自己的求职方向目标以及具体的最适合自己的一些岗位。博主是华科光电学院的软件工程专硕,自学C++,数据结构算法,操作系统等等(还在学习ing)平常的科研其实并不没有出彩甚至说加分之处,一直纠结于学了这些能做什么,做什么才是最适合的,怎样丰

2017-08-25 22:50:52 3736

原创 动态规划之最长公共子序列问题(LCS)

该问题的描述略。LCS问题同样具有最优子结构(),子问题也出现重叠,但又有所不同——它可以根据条件来排除子问题。建立一个二维数组res来存储LCS的长度,即res[i][j]表示长度为i的字符串X与长度为j的字符串Y的最长公共子序列的长度。经过分析可以得出如下公式:res[i][j]=0      i=0或j=0;  res[i-1][j-1]+1若i,j>0且X[i]=Y

2017-07-19 15:43:22 226

原创 数组、二维数组与指针

鉴于下面要解决的LCS问题要用到2维数组,这里就对 数组与指针,二维数组与指针做一个简单的阐述。比如说我们建立一个数组int test[3];它代表存储了3个int类型的组合,而且3个int类型的数字在内存中是紧靠在一起的,然后将数组名解释为第一个int类型数的地址(就是指针咯),即test等于&test[0]。那对于二维数组而言,情况又出现了哪些变化呢?见图:

2017-07-19 10:55:18 182

原创 动态规划之钢条问题

先给出概述:动态规划通常是用来解决最优化问题的。最优化问题指的是该类问题有很多可行解,我们希望找到最优解(最大或最小的解),更具体的来说:要得到规模为n的问题的最优解,那么会用到规模为n-1的相似问题的最优解。下面我们将通过钢条切割问题来详细描述什么是动态规划,动态规划又是如何操作的。钢条问题描述:给定一段长度为n的钢条和它对应的收益表Pi(i=1--n),问如何切割钢条(切割钢条本身不计

2017-07-18 10:56:20 305

原创 数据结构之平衡二叉树(红黑树)

接上文。我们介绍二叉树时,强调了它的优点:在它上面做任何字典操作的时间跟树的高度成正比,那单纯的二叉树并不能保证树的高度最低,于是人们就设计了诸如红黑树之类的平衡二叉树——使得一定节点的情况下树的高度最低。到这里其实数据怎么保存就已经基本

2017-07-17 21:07:00 212

原创 数据结构之二叉搜索树

什么是二叉搜索树呢?它与别的数据结构相比其优势又是什么呢?一颗二叉搜索树就是以一颗二叉树来组织和存储数据的,如图所示(图a是包含6个节点、高度为2的二叉树,图b是包含相同关键字、高度为4的低效二叉树)。对比博文前面所介绍的链表,二叉树也是可以用结构体来实现,只不过每个节点里面不仅要保存数据本身的关键字(称之为key),还要有左节点(左孩子left)、右节点(右孩子right)、父节点(p);根

2017-07-17 08:59:17 166

原创 数据结构之链表

为什么要单独把链表放出来呢?因为不同于栈和队列的基于数组实现,链表是通过保存在每个对象(这里我们用结构体)里面的指针来形成顺序结构的,这也就意味着它是不支持随机访问的(随机访问是指在常量的时间内访问任何一个元素)。但肯定有它的优势:从链表里删除(ListDelete)或插入(ListInsert)任何位置的元素的时间将是常量。下面代码通过结构体来实现链表以及删除(ListDelete)或插

2017-07-14 14:58:22 133

原创 基本数据结构——栈、队列和链表

栈(stack)实现的是一种依照先进先出(last—in,first-out,LIFO)原则的结构,也就是说最后放入的元素总是最先被取出。队列(queue)实现的是一种依照先进先出(first-in,first-out,FIFO)原则的结构,也就是说最先放入的元素总是最先被取出。至于为什么会存在这两种如此简单的结构,是因为我们在日常生活中经常采用上面的两个原则来处理一些数据。栈上的插入

2017-07-14 14:55:34 268

原创 排序算法之终章总结与提升

至此我们介绍了插入排序、(冒泡排序)、归并排序、堆排序以及快速排序,除此之外还有基数排序,计数排序和桶排序。其中冒泡排序效率低且没有插入排序有代表性,就不做过多描述。对于小规模的输入,插入排序是一种非常快的原址排序算法(原址指的是输入数组中仅有常数个元素需要在排序过程中存储到数组之外)。归并排序的效率会更高,但它采用的Merge过程并不是原址的,也就是说会占用更多的空间。堆排序是一

2017-07-13 11:32:23 218

原创 排序算法之快速排序

我们先概述下快速排序的过程:对数组A[p,r]进行排序,第一步将数组A[p,r]分解为三部分:A[p,q-1],A[q+1,r],A[q]其中A[p,q-1]中元素全部小于等于A[q],A[q+1,r]中元素全部大于A[q],这样A[q]这个元素就已经排好序了;第二步对A[p,q-1],A[q+1,r]两个数组递归滴调用该过程就能将A[p,r]数组排好序了。与归并排序相比,我们发现将数组分

2017-07-13 10:44:54 220

原创 排序算法之堆排序

要理解什么是堆排序(heapsort)首先要介绍堆,(二叉)堆是这样的一种可以看成近似完全二叉树的数据结构:采用最大堆,最大堆要满足的要求是对于任意一个节点i中的元素要大于其左孩子和右孩子节点中的元素。这样根节点中所存储的一定是改组元素中的最大元素。如图所示,图(a)表示该种数据结构,图(b)表示实际存储的形式。于是我们对任意节点i,2(i+1)就表示它的左孩子,2(i+1)+1就表示

2017-07-12 14:47:54 169

原创 排序算法之归并排序

要想深刻理解归并排序我们首先介绍一下分治法:但解决问题时,首先将问题分解成若干个规模较小的与原问题类似的子问题;然后递归地求解各个子问题;(当问题足够小时,直接求解)最后我们要合并这些分解而来的子问题(注意这是一个与原问题不同的合并操作);归并排序完全遵循了分治模式:首先要想将包含n各元素的数组排序,我们分解问题为将两个各具有n/2各元素的数组排序;然后递归地对这两个数组进

2017-06-04 18:16:02 202

原创 排序算法之冒泡排序

冒泡排序是一种流行但低效的排序算法,它的原理是反复交换未按次序排序的元素,可以做下了解不过真的没什么价值。代码如下:void BubbleSort(int* arr, int len) { for (int i = 0; i < len; i++) { for (int j = len - 1; j > i ; j--) { if (arr[j] < arr[j - 1]) {

2017-06-04 15:21:57 206

原创 排序算法之插入排序

排序算法是算法导论一书中首先介绍的内容,由它引出了如何证明算法是正确的(循环不变式),也引出了算法复杂度的计算。对插入排序而言,它的工作方式就像我们在打牌时排序一手扑克牌一样。我们每次摸到一张牌后都会把这张牌与我们手里的牌进行对比,然后将它放在正确的位置。我们以这样一组数{31,41,59,26,41,58}为例(算法导论书中的课后题 ),来说明插入排序具体的执行过程。

2017-06-02 15:53:02 234

原创 C++的结构体和函数

C++结构体

2017-05-05 09:24:06 491

空空如也

空空如也

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

TA关注的人

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