
剑指Offer(第二版)学习笔记+LeetCode算法总结
本专栏将会对剑指Offer(第二版)和LeetCode中各个常见面试题进行详解,精选其中最高频的算法题目,分类总结与阐述,力争用最清晰易懂的代码写出来,使用Java语言来进行实现,感兴趣的可以关注学习~
温柔狠角色
北邮本硕毕业,前小米服务端工程师,目前任职快手高级Java开发工程师,优快云认证博客专家,优快云学院讲师,GitChat分享者。
在2020.3月,参加社招面试,拿下了阿里,头条,快手,百度以及美团的社招Offer;在学生时代亦拿过多家知名大厂和国企的Offer。
喜欢学习,热爱分享技术,擅长总结知识点。优快云百万级博主,博客专家。
展开
-
5种关于字符串中“最长”问题的解法
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/77725795冷血之心的博客)常见的5种关于字符串中“最长”问题:最长公共子序列 最长公共子串 最长递增子序列 最长公共前缀 最长不含重复元素的子串最长公共子序列子序列不需要连续,给定两个不同长度的字符串,如何求出最长公共子序列?递归解法:...原创 2017-08-30 21:51:48 · 4405 阅读 · 0 评论 -
回朔法简单总结
关于递归实现回溯法的简单学习原创 2017-08-15 19:34:10 · 5909 阅读 · 5 评论 -
多种单链表反转面试题总结
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/72026734冷血之心的博客)总结下面试题中常见的单链表反转:常规的反转单链表 以K个为一组反转单链表,最后不足K个节点的部分也反转 以K个为一组反转单链表,最后不足K个节点的部分不反转1、反转单链表:代码如下:/* * 翻转链表(...原创 2017-05-14 17:20:34 · 4447 阅读 · 0 评论 -
LeetCode 二叉树路径问题 Path SUM(①②③)总结
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/77159954冷血之心的博客)题目一:Path Sum题目大意是这个意思,给定一棵二叉树和一个sum值,判断树中是否存在一条从根节点到叶子节点的路径,使得路径上的值加起来刚好等于sum。解题思路:递归结束条件:root == null返回fal...原创 2017-08-14 12:08:13 · 4760 阅读 · 0 评论 -
单链表删除(Delete)或者去除(Remove)节点面试题总结
单链表删除(Delete)或者去除(Remove)节点面试题总结原创 2017-07-25 11:40:14 · 14531 阅读 · 1 评论 -
Leetcode22. Generate Parentheses(生成有效的括号组合)
输入一个正整数N,打印出所有符合要求的括号组合。原创 2017-07-10 22:27:06 · 1899 阅读 · 0 评论 -
剑指Offer(第二版)面试案例:树中两个节点的最低公共祖先节点
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/74612786冷血之心的博客)剑指Offer(第二版)面试案例:树中两个节点的最低公共祖先节点题目:输入两个树节点,求它们的最低公共祖先节点。反问:这棵树是不是二叉树?面试官:是二叉树,并且是二叉搜索树。思路:二叉搜索树是经过排序的,位于左子树...原创 2017-07-06 22:03:37 · 5691 阅读 · 0 评论 -
剑指Offer(第二版)面试题53:在排序数组中查找数字出现的次数
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/74065254冷血之心的博客)剑指Offer(第二版)面试题53:在排序数组中查找数字出现的次数题目一:数字在排序数组中出现的次数统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次...原创 2017-07-01 16:05:10 · 3231 阅读 · 0 评论 -
剑指Offer(第二版)面试题56:数组中数字出现的次数
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/73609133冷血之心的博客)剑指Offer(第二版)面试题56:数组中数字出现的次数题目一:(easy)在一个数组中除了一个数字只出现一次之外,其他数字都出现了2次,请找出那个只出现了一次的数字。要求:线性时间复杂度O(N),空间复杂度为O(1)思路...原创 2017-06-22 20:07:35 · 3149 阅读 · 0 评论 -
剑指Offer(第二版)面试题30:包含min函数的栈
剑指Offer(第二版)面试题30:包含min函数的栈原创 2017-06-19 22:02:27 · 1853 阅读 · 1 评论 -
LeetCode 题解 3. Longest Substring Without Repeating Characters(最长不含重复字符的子字符串)
LeetCode 题解 3. Longest Substring Without Repeating Characters(最长不含重复字符的子字符串)原创 2017-06-17 16:19:23 · 3770 阅读 · 0 评论 -
剑指Offer(第二版)面试题16:数值的整数次方
剑指Offer(第二版)面试题16:数值的整数次方原创 2017-06-17 10:30:43 · 1835 阅读 · 2 评论 -
剑指Offer(第二版)面试题15:二进制中1的个数(位运算)
剑指Offer(第二版)面试题15:二进制中1的个数(位运算)(n-1)&n的使用原创 2017-06-16 22:38:14 · 2295 阅读 · 0 评论 -
剑指Offer(第二版)面试题14:剪绳子(动态规划)
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/73351134冷血之心的博客)剑指Offer(第二版)面试题14:剪绳子题目一:给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]*k[...原创 2017-06-16 21:45:00 · 16050 阅读 · 35 评论 -
2017 暑期实习校园招聘(Java后台开发方向)面经分享
2017 暑期实习校园招聘(Java后台开发方向)面经分享原创 2017-05-25 22:21:32 · 10006 阅读 · 23 评论 -
剑指Offer(第二版)面试题21:调整数组顺序使奇数位于偶数前面
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/72594212冷血之心的博客)剑指Offer面试题21:调整数组顺序使奇数位于偶数前面题目一:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。思路:使用双指针,left和right;left从...原创 2017-05-21 10:27:51 · 1978 阅读 · 0 评论 -
字符串转整数,MyAtoi方法的实现
字符串转整数原创 2017-05-16 22:22:54 · 2480 阅读 · 0 评论 -
剑指Offer(第二版)面试题11:旋转数组的最小数字
旋转数组中的最小值,二分查找的具体使用案例原创 2017-05-14 11:14:32 · 1999 阅读 · 1 评论 -
剑指Offer(第二版)面试题10:斐波那契数列
斐波那契数列的变形原创 2017-05-14 10:40:49 · 1205 阅读 · 0 评论 -
剑指Offer(第二版)面试题9:用两个栈实现队列
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/71927382冷血之心的博客)剑指Offer面试题9:用两个栈实现队列题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在对尾部插入节点和在队列头部删除节点功能。栈是一种后进先出的数据结构,而...原创 2017-05-14 10:13:45 · 1803 阅读 · 0 评论 -
剑指Offer(第二版)面试题6:从尾到头打印链表
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/71598318冷血之心的博客)剑指Offer面试题6:从尾到头打印链表题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。这题确实比较简单,第一想到的应该就是使用后进先出的堆栈来实现了,既然用到了堆栈,顺便还可以用递归来实现。...原创 2017-05-10 22:38:27 · 1158 阅读 · 0 评论 -
剑指Offer(第二版)面试题5:替换空格
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/71478310冷血之心的博客)题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We%20are%20happy.”这个题目我们可以用API中的replace()搞定,但是让自己写个算法实现呢...原创 2017-05-09 15:41:29 · 1171 阅读 · 0 评论 -
剑指Offer(第二版)面试题4:二维数组中的查找
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/71436631冷血之心的博客)显然该题可以使用暴力遍历的方法解决,然而如果你进行暴力,那么你肯定拿不到Offer通过优化,可以达到O(N)的复杂度,相当漂亮。/* * 剑指Offer面试题4:二维数组中的查找 * 题目:在一个二维数组...原创 2017-05-08 22:19:37 · 1237 阅读 · 1 评论 -
剑指Offer(第二版)面试题3:数组中的重复元素
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/71429662冷血之心的博客)从今天开始,学习剑指Offer(第二版)中的所有算法题,并且用java实现一遍,同步更新Blog剑指Offer(第二版)面试题3:数组中重复的数字题目一:找出数组中重复的数字 (限定不可以重复数字是-1,如果没有重复数字,返回...原创 2017-05-08 19:29:53 · 2280 阅读 · 2 评论 -
LeetCode 题解 169. Majority Element(查找多数元素)
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/70917827冷血之心的博客)欢迎关注微信公众号(文强的技术小屋),学习更多技术知识,一起遨游知识海洋~开始在LeetCode上多学习别人的算法,加油~~~题目链接地址:https://leetcode.com/problems/majority-...原创 2017-04-28 16:23:45 · 2641 阅读 · 0 评论 -
如何自定义实现堆栈?
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/70860378冷血之心的博客) 堆栈(Stack)是一种常见的数据结构,符合后进先出(First In Last Out)原则,通常用于实现对象存放顺序的逆序。栈的基本操作有push(添加到堆栈),pop(从堆栈删除),peek(检测栈顶元素且不删除)。...原创 2017-04-27 17:47:59 · 3991 阅读 · 3 评论 -
《今日头条2017暑期实习》:找出函数的最宽尖峰
找出函数的最宽尖峰 描述:按照数组的形式给出函数f(x)的取值,数组取值都为整数,函数在每个点都是严格单调递增或者严格递减(即A[i-1]!=A[i]!=A[i+1]), 要求找出最宽的先上升后下降的区别(这个区间内函数的值必须先上升到一个点后再下降,区间的上升段和下降段长度必须都大于0) 1、如果找到符合条件的最大区间,输出数组对应的左右下标(有多个最大区间时,输出最左边的那个) 2、找原创 2017-04-21 11:19:38 · 1726 阅读 · 0 评论 -
算法题:给出一组数字,拼接一个最大的值
如何拼接最大的数?原创 2017-04-20 20:36:07 · 8406 阅读 · 0 评论 -
二叉树基础题(三):完全二叉树的判断&平衡二叉树的判断
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/69788107冷血之心的博客)二叉树基础题(一)二叉树基础题(二)二叉树基础题(三)二叉树是在面试中经常被问到的,这里总结下二叉树的常用操作。包括:判断是否是完全二叉树:isCompleteBinaryTree(迭代) 判断二叉树是不是...原创 2017-04-08 22:15:03 · 1629 阅读 · 1 评论 -
2018腾讯模拟考试算法题(求该数是多少对质数相加的和)
该题是2017年3月25日腾讯暑期实习生校招技术岗模拟考试题的一道算法大题。原创 2017-03-25 21:49:25 · 3380 阅读 · 1 评论 -
二叉树基础题(二):分层遍历&二叉树深度&是否相同的树
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/62424798冷血之心的博客)二叉树基础题(一)二叉树基础题(二)二叉树基础题(三)二叉树是在面试中经常被问到的,这里总结下二叉树的常用操作。包括:求二叉树中的节点个数: getNodeNumRec(递归),getNodeNum(...原创 2017-03-16 16:06:04 · 2442 阅读 · 3 评论 -
二叉树基础题(一):先序遍历&中序遍历&后序遍历
(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/62423610冷血之心的博客)二叉树基础题(一)二叉树基础题(二)二叉树基础题(三)二叉树是在面试中经常被问到的,这里总结下二叉树的三种遍历方式,包括其遍历解法和迭代解法。前序遍历也叫做先根遍历、先序遍历,可记做根左右。...原创 2017-03-16 15:23:21 · 4342 阅读 · 0 评论 -
链表基础题大全(二)
关于常见链表的操作总结二原创 2017-03-12 18:22:40 · 2463 阅读 · 0 评论 -
链表基础题大全(一)
关于链表的常见操作,所做的一个总结。原创 2017-03-09 15:52:51 · 3760 阅读 · 0 评论