编程
文章平均质量分 78
算法匠人
本人算法匠人,人如其名:酷爱算法,具备专业的工匠精神。本人计算机专业出身,硕士学位,现就职于一家知名IC大厂,技术研发已近10年。平时喜好算法,数学,刷题,分享。目前已出书6本:《算法大爆炸:面试通关步步为营》《程序员面试笔记,C/C++,算法,数据结构篇》和数学科普书《那些令人脑洞打开的数学》正在热卖中。
展开
-
双向链表的定义及基本操作
《匠人的算法课II》为数据结构和算法系列课程的进阶课程。本讲为第一讲,大家详细介绍双向链表的定义以及基本操作。原创 2023-03-31 22:56:52 · 453 阅读 · 0 评论 -
大厂高频面试系列07- 寻找“单身狗”问题
大厂高频面试系列07- 寻找“单身狗”问题描述:问题1:一个数组中除了一个数字只出现一次外,其余数字均出现偶数次,我们将这个只出现一次的数称为“单身狗”。现在要求只扫描数组一次,找出这个只出现一次的数字。问题2:一个数组中除了三个数字只出现一次外,其余数字均出现偶数次。那么这三个数字就是三只“单身狗”,要求用最小的时间复杂度找出这个三个数字中的任意一个。难度:★★★题目解析:对于第一个问题,有的同学第一感就是将数组排序,然后从头到尾扫描一遍就可以找出答案,但是由于题目对时间复杂度有要原创 2021-05-15 22:17:23 · 480 阅读 · 3 评论 -
大厂高频面试系列06- 渔夫捕鱼问题
大厂高频面试系列06- 渔夫捕鱼问题描述:A、B、C、D、E共5个渔夫夜间合伙捕鱼,凌晨时都疲倦不堪,各自在河边的树丛中找地方睡着了。待日上三竿,渔夫A第一个醒来,他将鱼分作5份,把多余的一条扔回河中,拿自己的一份回家去了。渔夫B第二个醒来,也将鱼分作5份,扔掉多余的一条,拿走自己的一份,接着C、D、E依次醒来,也都按同样的办法分鱼,问5个渔夫至少合伙捕了多少条鱼?难度:★★程序语言:一道很经典的面试题,在我找工作的时候就遇到过这道题。本题的特点是看似简单,但是一不小心就容.原创 2021-05-03 08:19:47 · 1010 阅读 · 0 评论 -
大厂高频面试系列05- 最长公共前缀问题
大厂高频面试-05 最长公共前缀问题描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。举例:输入: ["flower","flow","flight"]输出: "fl"来源:LeetCode题目难度:★★题目分析:我们先从最简单的情况分析这个问题。假设只有两个字符串,计算这两个字符串的最长公共前缀的方法是:将两个字符串从左向右一一比较,直到遇到不相同的字符为止,前面的部分就是它们的最长公共前缀。例如字符串1为”abcde”,字符串2.原创 2021-04-25 21:27:35 · 250 阅读 · 0 评论 -
大厂高频面试系列04- 寻找丑数
大厂高频面试系列04- 寻找丑数我们把只包含因子2,3,5的数称为丑数。例如6,8都是丑数,而14不是丑数,因为它包含因子7。通常我们也把1当作丑数。编程找出1500以内的全部丑数。注意:使用的算法效率应尽量高。题目难度:★★题目分析:本题最直观的解法是采用穷举筛选法:遍历1~1500这1500个整数,判断每一个数是否是丑数,如果该数是丑数则输出,否则跳过该数继续向下遍历。这个解法的关键是如何判断丑数。根据题目已知,丑数只包含因子2,3,5,而不包含其他任何因子,同时1也是丑数,因此可以原创 2021-04-22 21:45:23 · 600 阅读 · 0 评论 -
大厂高频面试系列03-最长回文子串问题(LeetCode)
大厂高频面试系列03-最长回文子串问题(LeetCode)题目描述:给定一个字符串S,找出S中最长的回文子串。举例:输入:”babad”输出:”bab”注意:”aba”也是一个有效的答案,输出一个答案即可。题目难度:★★题目分析:本题的难点有两个:一是如何列举出一个字符串中的子串;二是如何判断一个子串是否是回文子串,并且这个回文子串还是最长的那一个。解决了这两个问题,本题就迎刃而解了。对于第一个问题,最常用的解法是利用一个长度可变的滑块,该滑块从字符串的最左端开始向右原创 2021-04-21 21:27:08 · 190 阅读 · 0 评论 -
大厂高频面试系列02--最长不重复子串问题(LeetCode)
大厂高频面试系列02--最长不重复子串问题题目描述:给定一个字符串,找出不含有重复字符的最长子串的长度。举例:给定"abcabcbb",没有重复字符的最长子串是"abc",那么长度就是3。给定"bbbbb",最长的子串就是"b",长度是1。给定"pwwkew",最长子串是"wke",长度是3。请注意答案必须是一个子串,"pwke"是子序列而不是子串。题目难度:★★★题目分析:要解决最长不重复子串的问题,首先我们应当知道如何找到不含有重复字符的...原创 2021-04-19 21:31:41 · 1839 阅读 · 0 评论 -
大厂高频面试系列01--最短连续子数组问题(LeetCode)
大厂高频面试系列01--最短连续子数组问题题目描述:给定一个整数数组,请需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。要求找到的子数组应是最短的,请输出它的长度。举例:给定数组:array[7]={2,4,7,6,11,8,19};输出结果:4理由:因为这个最短连续子数组为{7,6,11,8}...原创 2021-04-18 18:02:42 · 394 阅读 · 0 评论 -
怎样数出有多少个三角形?
怎样数出有多少个三角形?最近在微博里看到一个题目,问这个图形里包含了多少个三角形。网友们众说不一,有说10个,17个,18个。。。 到底有多少个呢?原创 2015-08-05 22:21:07 · 8452 阅读 · 0 评论 -
用两个栈实现一个队列
用两个栈实现一个队列原创 2015-08-23 22:06:53 · 683 阅读 · 0 评论 -
一道有趣奥数题——“丢番图的墓志铭”
一道有趣奥数题——“丢番图的墓志铭”原创 2015-08-09 22:10:13 · 5542 阅读 · 0 评论 -
找出字符串中对称的子字符串的最大长度
闲来无事翻了翻之前的面试书,有一道题勾起了我的兴趣,题目如下:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。本文将给出该题的解法,深入浅出,详细讲解。原创 2015-08-07 23:09:09 · 3146 阅读 · 1 评论