- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 判断一个自然数是否是一个平方数 - 算法与数据结构面试分享 (三十三)
最近因为工作很忙,很久没有写文章了。看着公众号里关注的朋友越来越多,感觉动力又来了。今天看一道简单的题目,从这个过程中大家一起探讨下它优化的过程,或许我们还有更好的解决方案。给定问题:给定一个自然数,请帮我判断是否是某个自然数的平方。当然开方运算是不可以使用的!初识问题:这个问题很简单,给定的自然数是N,判断是否存在K,0<=K<=N, 使得K^2 =N. 如果使用开方运算的话...
2018-09-12 20:39:18 709
原创 微软PowerBI商业智能数据可视化
想制作高颜值高效率高智能的动态报表吗?想让老板和同事们对你刮目相看?不需要有编程基础!不需要有复杂的ETL的Data warehouse(数据仓库)做支撑!赶快来学习使用Power BI吧!微软Power BI是目前最新、最热门的商业智能概念,也被称之为第三代商业智能工具 – 全员商业智能(BI),我们不需要任何编程只是,只需要你会简单的Excel使用。从此,你就可以从此让你的报表:高颜值 – 上...
2018-06-19 21:01:49 3779 1
原创 二维数组中求子数组最大和 - 算法与数据结构面试分享 (三十二)
我们今天看下这样一道题:在一个大矩阵中求一个最大的二维矩阵。其实就是在一个二维数组中找到一个X, Y使得(X,Y),(X, Y+1),(X+1, Y),(X+1, Y+1) 组成的和比其他的任何类似的子数组都大。这里有一个例子:如举证中:1 2 0 3 42 3 4 5 11 1 5 3 0中最大的是:4 55 3好了,大家理解了大矩阵的其实就是一个二维数组,而二维矩阵其实就是由点 (X,Y)向右...
2018-06-19 19:40:25 370
原创 特殊的字符替换 - 算法与数据结构面试分享 (三十一)
场景回顾:今天下午一兄弟电话面试了两个哥们,结果两个人基本上都挂了。其实考的内容很简单,就是字符换的替换。不过思路要清晰,不要求语法全部正确,因为是在白板上。原题是这样的,我们在处理markdown的时候,两个“*”之间的内容会被加粗,当然转义字符除外。给你一段字符串,你能帮我输出它替换后的表示吗,请将*转换成<strong>. 我再举个例子 ,输入 “A*B*C“,你帮我返回 "A&...
2018-06-06 21:39:17 273
原创 二十六进制问题 - 算法与数据结构面试分享 (三十)
场景回顾:前两天群里有同学在讨论这样一个问题,说是遇到了一个数据结构面试题,打印从a到z, 如 a 到 ab,再到az, 再到azzz 的字符串(其实这并不准确,除非他真的要解决排列组合问题,或者是在26进制的基础上做了什么变化)。当时我是觉得这位同学没有说清楚,于是在群里我问了这样几个问题:1. 这是一个要解决26进制的问题吗?2. 每次只加一吗?3. 打印的时候传什么参数,如传入N,是要把该过...
2018-05-28 19:40:29 824
原创 到底是什么阻碍了我学习数据结构? - 算法与数据结构面试分享 (二十九)
求知路上的心声:这两天在群里看有同学在讨论,学习数据之前敲起代码好有激情,就像开机甲似的,学习数据结构之后才发现这么多东西,都不知道自己以前打的都是些啥。这段话很无奈也很真实。可以说没有数据结构和算法代码也只剩下输入和输出了,而且输出和输入之间基本上什么逻辑也没有。同学们认同吗?我们思考一下,学习数据结构和算法到底在学习什么?1. 数组的组织和处理方法,这是逻辑。2. 实现数据结构和算法的过程除了...
2018-05-21 19:43:17 224
原创 双队列灵活运用解决实际问题(二十八)
这是今天群里同学提出来的一个问题,非常有生产意义。大概是这样说的,我们有N个工位,M个工人,工位标有序号1,2,3,4...N. 每个工位上做的事情不一样,大家可以理解为前面的工位更有挑战或者单位时间内的回报越高。现在为了平衡这些工人,我们需要给一个分配算法。第一次分配的时候如果分配到了P的工位上,下一次分配的时候会出现在P-1的工位上。请实现一个算法。提出问题: 1. 第一次分配的时候,我们优先...
2018-05-16 19:57:07 445
原创 动态规划系列 - 找递增序列的长度 - 算法与数据结构面试分享(二十七)
我们今天来看一道简单的动态规划内容哈。先看题目:在一个整型数组中求递增序列的长度。我们先把这道题细化一下,假设有一个整型数组, a1, a2, a3,...an, 我们需要找到一个递增序列 ai, aj, ak...使得 i<j<k 并且 ai<aj<ak, 那么i, j, k等就算是递增序列里的元素,而递增序列的长度取决于i,j,k的数列。 那么大家心里可能会有一些疑问了...
2018-05-05 18:39:43 304
原创 保留栈的一半元素 - 算法与数据结构面试分享(二十六)
昨天群里有同学在问这样一道题,大体的意思是说利用栈的常用操作将原栈中元素删除一半,可以构造辅助栈。我们看下原题哈。Give the lines of code that delete the bottom half of a stack S1. For example, the code should achieve the following, use only the top(), Push(...
2018-05-02 21:47:42 308
原创 链表面试 - 复习链表中所有知识点及真题梳理 - 算法与数据结构面试分享(二十五)
今天在整理链表的知识点,基本上分为单链表,双链表,循环链表和双向循环链表,而每一种链表中有分是否带空值头结点。在链表中涉及的常规操作有四种1. 遍历2. 插入3. 删除4. 查找面试中还会出现一些比较复杂的操作,如:1. 合并2. 交叉与环3. 分离4. 排序链表中涉及的所有知识点包括如下方面。大家若是发现还有其他类型的话,欢迎补充,接下来打算全部梳理一遍,结合面试真题,写出具体的逻辑,和代码实...
2018-04-30 21:44:34 229
原创 排序算法专题:十大排序算法的前世今生,恩怨纠缠 - 算法与数据结构面试分享(二十四)
前几天花了些时间在整体排序算法专题,回顾了小我们接触过的所有排序算法。总结下来大概可以分为以下10种经典原型,说是原型是因为算法题总是在变的,但是万变不离其宗,我们总是能找得到原型的。这篇文章不会展开来讲哈,但是我们会描叙下它们的基本思想。敢兴趣的同学可以浏览到最后,我们会有更多的资源哈。一、 冒泡排序冒泡排序的基本思想来源于生活,小鱼在水底冒泡,上升的水面的过程中变得越来越大。扫描待排序的数组一...
2018-04-24 19:59:15 683
原创 栈的压入弹出序列 - 算法与数据结构面试分享(二十三)
题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)栈的知识回顾:先进后出,所以如果我们入栈的顺序是1,2,3,4,5, 虽然在入栈的过程中可以任...
2018-04-23 22:18:50 182
原创 爬楼梯问题, 求有多少种走法。 性能二次改良- 算法与数据结构面试分享(二十二)
题目:我们在上楼梯的时候,假设我们一次上一个台阶,也可以上两个台阶,如果现在有N个台阶,请问它有多少种走法?能帮我实现一个算法吗?很多同学拿到这道题的时候,想到的是数学问题。不过很多人不小心就陷入了排列组合,在N中求出1与2的组合可能有多少?按照这种思路估计就解不出来这道题了。要理解这道题得从下面两个方面入手: 什么叫走法?假设我们现在有3个台阶,它的走法有(1,1,1),(1,2),(2,1),...
2018-04-20 21:31:02 650
原创 相邻差绝对值为1的数组中寻找目标 T - 算法与数据结构面试分享(二十一)
题目: 我们有一个数组A, 它相邻两个数的差的绝对值为1,如{1,2,3,4,3,2,3,4,5,4,5,6,7},现在给定某一个数字t,求其在数组中的位置。最暴力的算法就是遍历数组一遍,拿每个元素去和目标元素比较,在O(n)的复杂度内解决问题。然而,我们发现,有一个条件没有使用到对吧,相邻两个数的差的绝对值为1. 所以我们断定,这道题的复杂度可以比O(n)更低。大家可能会马上想到 O(logn)...
2018-04-18 22:24:35 904 1
原创 算法与数据结构面试分享(二十)设计一个带有min函数的栈
这是一道google的面试题。请帮忙定义一个栈,要求添加一个min函数,能够得到栈里的最小元素。要求min, push, pop的时间复杂度都是O(1).我们可不可以保存一个临时变量,每次入栈的时候拿入栈的元素和当前最小值去做比较,如果比当前的元素小我们就替换。好像目前是工作的,但是再往下想,如果我现在出栈呢?大家知道,栈里肯定有一个相对较小的元素,而此时,我们已经不知道它是多少呢?所以这种方法是...
2018-04-18 21:38:42 228
原创 算法与数据结构面试分享(十九)判断两个字符串是否模式相似
这是今天下午同事出的一道面试题,在线面试的,不过小伙十几分钟里没有搞定,同事是个妹子,很想给提示的,可惜小伙没给机会呀。看题哈。题目:首先给了一个定义,假设两个字符串的模式一样,我们就认为他们相似。举个例子,字符串1: “abb”,字符串2: “cee“。他们的模式是一样的,我们认为相似,能帮我实现一个算法,可以利用现有的库函数,语言不限,你有什么问题要和我确认的吗?题目出去了,线上的小伙蒙了。估...
2018-04-17 19:55:12 466
原创 算法与数据结构面试分享(十八)一排N(最大1M)个正整数+1递增,乱序排列,第一个不是最小的,把它换成-1,最小数为a且未知求第一个被
这是百度的一道面试题。一排N(最大1M)个正整数+1递增,乱序排列,第一个不是最小的,把它换成-1,最小数为a且未知。求第一个被-1替换掉的数原来的值,并分析算法复杂度。其实这道题并不难,关键是大家能否找出其中的陷阱并解决它。理解问题:1. 如果1-10的排序数组打乱顺序之后,我们拿掉其中一个并换成-1,大家能找出来吗?2. 如果一个等差数列,打乱顺序后,我们拿掉其中一个并换成-1,大家能找出来吗...
2018-04-16 19:22:42 298
原创 算法与数据结构面试分享(十七)两个单链表是否相交,若相交请求出交点
题目:已知两个单链表是否相交,若相交请求出交点。在前两篇博客的基础上,我们继续完善这道题,判断两个单链表是否相交,若相交我们求出他们的交点,这次我们将考虑带环的情况。算法与数据结构面试分享(十五)判断两个链表是否有交叉(单链表,不含环)算法与数据结构面试分享(十六)判断一个单链表是否含环,返回入口点大体的思路是,首先判断是否带环。1. 都不带环,但是相交,请看十六。2. 一个带坏,另一个不带环,这...
2018-04-15 20:55:25 197
原创 算法与数据结构面试分享(十六)判断一个单链表是否含环,返回入口点
题目:现在有一个单链表,请判断它是否带环,如果构成环,请返回环的入口点。这是接着上篇文章的讨论,留了两个问题,如何判断一个单链表是否构成环,有的话,返回它的入口点。之后我们再研究在构成环的链表中如何判断两个链表是否相交,这样我们上篇文章就完整了。上篇当中,我们提到了构成环的结构应该是类似于6的样子对吧。我们回忆一下,小学做过的数学题哈,两个小朋友在操场上跑步,一个快,一个慢,请问他们是否会相遇。大...
2018-04-05 00:36:16 243
原创 算法与数据结构面试分享(十五)判断两个链表是否有交叉(单链表,不含环)
题目:现在有两个链表,你能帮我判断两个链表是否有交叉吗?如果能帮我找出来交叉的节点最好。分析问题:我们首先想到的是暴力解法, n*n的复杂度,遍历一个链表的同时,再遍历另外一个链表,判断另一个链表里是否有节点是当前的节点。但是,我们再想象一下,链表交叉会是什么样的情况? Y型对吧?不可能是X型对吧(之前和很多候选人聊过,他们弄不清楚相交的场景,这说明对链表没有很深的认识),但是大家想一下,如果给出...
2018-04-04 23:01:40 323 1
原创 算法数据结构面试分享(十四)求无序数组连续和最大
题目:现在有一个整型的数组,能帮我求出该数组中连续最大和吗?请用最优的算法来实现。很多年前看到过这道题,说实话,第一次看到这道题的时候心里有很多疑问。1. 什么叫连续?2. 相加为什么还有最大一说?3. 最优的算法?说明有暴力解法,也有优化的解法给自己找个例子,看什么样的例子能够回答我们的前两个问题。大家停顿一下,等会再往后读。数组最大连续和注意1, 2, -2, 1, -2, -7, 1616前...
2018-04-04 20:36:14 713
原创 算法数据结构面试分享(十三)合并两个已排序的单链表
题目:给定两个单链表,并且两个单链表都是升序排列的,请将两个链表合并成一个升序的单链表。假定我们的第一个链表: 1=>3=>5=>6, 第二个链表: 2=>4. 合并之后的链表是 1=>2=>3=>4=>5=>6大家注意哈,链表是由各个节点组成的,我们再合并的时候是不能再申请新的节点了哈,只是将这些节点按照要求串起来,对吧。这道题比上一遍的题目...
2018-04-04 19:04:45 296
原创 算法数据结构面试分享(十二)合并两个已排序的整型数组
题目:给你两个已排序的数组,请帮我合并他们。要求合并之后的数组还是排好序的。有些同学拿到这道题后,想到的是申明一个新的数组,直接将两个数组合并进来,然后排序,题目中也没有要求复杂度。应该是过关的吧?其实不然,大家细细想下,这样的话我们会浪费一个条件,原来的两个数组已经是排好序的了。显然没有用上。看过我视频课程的同学可以已经知道了,我们再分而治之,归并排序的时候其实处理过这个问题,今天我们再单独拿出...
2018-04-03 20:24:45 293
原创 算法数据结构面试分享(十一)火眼金睛,从队伍里迅速找出那唯一的一个双胞胎
题目:假设你有一个用1001 个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1 到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方式的算法吗?仔细分析看过我之前文章或者我视频教程的同学可以已近发现了除了排序的算法之外,还可以通过...
2018-04-02 19:39:05 190
原创 算法数据结构面试分享(十)这样的对白,面试者和求职者同样郁闷
今天和大家分享一场发生在我身边的面试,事情就发生在今天下午。本来周五了,大家的心情应该无比欢畅,终于迎来了周末。可是这场面试和这样的对白,面试者和求职者同样郁闷。 我同事面试的,一家供应商推送过来的候选人,3年工作经验,简单的寒暄之后正式开始了技术面试。有必要和大家分享下项目组是怎么招聘的哈,一般情况下会先让候选人介绍一下自己,针对简历上提到的项目会大概了解下情况,在心里对候选人有...
2018-03-30 21:29:47 195
原创 算法数据结构面试分享(九)从斐波那契数列初识递归
从斐波那契数列初识递归斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368.. 今天我们来一起回顾一下这个数列,重新认识一下递归的原理。大家还记得我们的课本上讲递归的时候,先引入的是它的算法定义,然后带大家去编码的对...
2018-03-26 19:30:37 215
原创 算法数据结构面试分享(八)寻找第一个不重复的字符
寻找第一个不重复的字符 今天我们一起来看这道题:寻找第一个不重复的字符。原题的描述是:Write an efficient function to find the first nonrepeated character in a string. For instance, the first nonrepeated character in “total” is ‘o’ and the fi...
2018-03-24 11:52:36 402
原创 算法数据结构面试分享(七)字符串按单词反转
字符串按单词反转 这几天一直有项目组活动,耽误了没有更新。今天我们一起看一下这道题: 字符串按照单词反转。一、确保我们理解了问题,并且尝试一个例子,确认理解无误。 我们应该见过这种问题,反转一个字符串,如 “am" => "ma", 这道题也是这个思路,只是我们会以单词为单位。如"I am student" => "student am I". 好了我们现在可以提问了。1...
2018-03-21 21:40:28 237
原创 算法数据结构面试分享(六)数组排序问题(2) - 计数排序
数组排序问题(2) 昨天我们留了一道题目“给你一个整型数组,里面出现的数在[0-100] 之间,能用最优化的方法帮我排序吗”。一、确保我们理解了问题,并且尝试一个例子,确认理解无误。 这是一道排序算法题,我们学过很多排序的算法。不一样的是,它给定一个额外的条件,数组里的每个数字都在1-100之间。如果我们采取传统的排序算法,这个条件我们好像用不上。大家在面试的时候如果发现有条件没有用...
2018-03-17 10:25:48 212
原创 算法数据结构面试分享(五)数组排序问题(1)
数组排序问题 本来前两天就该总结排序问题的,中间临时插入了几个栈的问题。我们之前在课本上学习过一般的排序方法,如冒泡,快排,插入,归并。其中时间复杂度有O(N), 和O(Nlogn), 以及O(N2)的。今天我们在这里看一些特定情况下的排序,并否所有的排序都是基于大小的,有时待排序的数大小范围是已知的,我们分别看两个典型的例子:给你一个整型的数组,我想把奇数排在前面,偶数排在后面,也就是没有...
2018-03-16 19:44:30 207
原创 算法数据结构面试分享(四)括号匹配问题
算法数据结构面试分享(四)符号匹配问题今天在帖子上看见有同学在问,如果一个字符串中包含大括号和小括号,我们该如何解决括号匹配问题。我们今天就一起看下这道题吧。按照我们之前的套路,按部就班来:一、确保我们理解了问题,并且尝试一个例子,确认理解无误。 举个例子,这样的括号是匹配的, ()、{}、({}), ({()}(){}), 而类似于{(、{,({)都是不匹配的。二、想想你可以用什么方法解决问题,...
2018-03-15 20:47:38 469 1
原创 算法数据结构面试分享(三)找出最大的两个(K)数
给你一个整型数组,我想找出来最大的两个数,能帮我写一个算法吗?在上一遍我们已经解读过这道题目了,包括我们能想到的问题。这里我们按照解决算法题的一般步骤再来一起分析一下这道题:一、确保我们理解了问题,并且尝试一个例子,确认理解无误。 那现在我们澄清一下问题,我们需要从这样的数组中{ 4, 5,2,3,1}中找出最大的两个数字返回{4,5},当数组为空的时候我们也返回空的数组。二、想想你可以用什么方法...
2018-03-14 20:32:47 417
原创 算法数据结构面试分享(二)- 解决算法问题的一般方法
先看一道题目: 给你一个整型数组,我想找出来最大的两个数,能帮我写一个算法吗?拿到这个题目,大家会怎么想到用什么方法解决吗?我见过很多同学的回答是,先排序,取最大的两个数就好了。那么接下来我们的问题就变成了如何给这个整型数组排序了。我们有很多种方法,冒泡排序,快速排序等等。很有可能面试官就让你开始写具体的排序算法了。当然,有些有经验的同学可能会说了,排序我直接调用sort方法就好了哈。 ...
2018-03-13 21:18:15 473
原创 算法数据结构面试分享(一)
算法与数据结构面试分享 美国西部冰雪未融,国内相比已是鲜花盛开了,在出差回来的路上,10几个小时的飞行旅途实在太无聊,回想起10年前的这个时候我还在各大校园招聘中穿梭着。而我,工作快10年了,摸爬滚打快10年了,从来就没有写下过什么,而此刻,有一种冲动,想为你,为即将毕业的学弟学妹们,为了祖国未来的IT精英们做点什么,也为我自己留下点回忆。希望能得到你们的支持,让我把这一系列的文章能够写完。...
2018-03-13 20:23:56 242
转载 AI - 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
本文转自: http://blog.csdn.net/zhongwen7710/article/details/45331915列出的内容比较多,我自己还在看。我计划接下来看能否按照类别和难易程度做下整理,方便网友们查看。《Brief History of Machine Learning》介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机、神经网络、决策树、SVM、Adaboost到随...
2018-02-12 17:46:47 3562
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人