【剑指offer题解(Java/Python实现)】
剑指offer题解(Java/Python),题目精讲
蛮三刀酱
这个作者很懒,什么都没留下…
展开
-
[剑指offer题解][Java]1到n整数中1出现的次数
前言众所周知,《剑指offer》是一本“好书”。如果你是个算法菜鸡(和我一样),那么最推荐的是先把剑指offer的题目搞明白。对于剑指offer题解这个系列,我的写作思路是,对于看过文章的读者,能够做到:迅速了解该题常见解答思路(偏门思路不包括在内,节省大家时间,实在有研究需求的人可以查阅其它资料)思路尽量贴近原书(例如书中提到的面试官经常会要求不改变原数组,或者有空间限制等,尽量体...原创 2019-07-31 17:54:56 · 454 阅读 · 0 评论 -
[剑指offer题解][Java]连续子数组的最大和
前言众所周知,《剑指offer》是一本“好书”。如果你是个算法菜鸡(和我一样),那么最推荐的是先把剑指offer的题目搞明白。对于剑指offer题解这个系列,我的写作思路是,对于看过文章的读者,能够做到:迅速了解该题常见解答思路(偏门思路不包括在内,节省大家时间,实在有研究需求的人可以查阅其它资料)思路尽量贴近原书(例如书中提到的面试官经常会要求不改变原数组,或者有空间限制等,尽量体现...原创 2019-07-29 22:42:22 · 469 阅读 · 0 评论 -
[剑指offer题解][Java]最小的k个数
前言众所周知,《剑指offer》是一本“好书”。为什么这么说?因为在面试老鸟眼里,它里面罗列的算法题在面试中出现的频率是非常非常高的。有多高,以我目前不多的面试来看,在所有遇到的面试算法题中,出现原题的概率大概能有6成,如果把基于原题的变种题目算上,那么这个出现概率能到达9成,10题中9题见过。如果你是个算法菜鸡(和我一样),那么最推荐的是先把剑指offer的题目搞明白。至于为什么给...原创 2019-04-20 15:28:30 · 377 阅读 · 0 评论 -
[剑指offer题解][Java]数组中出现次数超过一半的数字
前言最近看了好多数据结构文章,但是数据结构拾遗系列迟迟憋不出,主要原因是很多数据结构其实非常偏门,不仅日常很难遇到,学起来还涉及很多数学模型,很难有快速的理解方法。本着女排“短平快”的精神,先更新下剑指offer题解系列。众所周知,《剑指offer》是一本“好书”。为什么这么说?因为在面试老鸟眼里,它里面罗列的算法题在面试中出现的频率是非常非常高的。有多高,以我目前不多的面试来看,在所有...原创 2019-04-19 16:20:09 · 535 阅读 · 0 评论 -
[剑指offer][Java]树的子结构
题目https://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)代码public class Solution { public boolean DoesTreehasTree(TreeNode root...原创 2018-09-25 09:23:28 · 431 阅读 · 0 评论 -
[剑指offer][Java]调整数组顺序使奇数位于偶数前面
题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。代码题目和书中有区别,书中没有要求相对位置不变,所以写了书中的快速排序,但是牛客要求位置不变,快排作为不稳定排序,没法通过,只能使用别的排序例如归并或者插入排序,也可以单独开辟数组。快排代码:public c...原创 2018-09-14 15:43:56 · 1351 阅读 · 0 评论 -
[剑指offer][Java]二叉搜索树的后序遍历序列
题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。代码注意点:用start和root来控制读取的数组长度public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { i...原创 2018-09-14 11:00:31 · 299 阅读 · 0 评论 -
[剑指offer][Java]数组中的逆序对
题目链接:https://www.nowcoder.com/questionTerminal/96bd6684e04a44eb80e6a68efc0ec6c5 来源:牛客网在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 代码...原创 2018-09-13 22:38:49 · 354 阅读 · 0 评论 -
[剑指offer][Java]不用加减乘除做加法
题目写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。代码链接:https://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215 来源:牛客网首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2。 第二步:计算进位值,得到10. 如...原创 2018-09-13 10:12:22 · 324 阅读 · 0 评论 -
[剑指offer][Java]旋转数组的最小数字
题目链接:https://www.nowcoder.com/questionTerminal/9f3231a991af4f55b95579b44b7a01ba 来源:牛客网把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 N...原创 2018-09-13 00:24:59 · 354 阅读 · 0 评论 -
[剑指offer][Java]替换空格
题目请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。代码注意点:str.setLength(newlength):StringBuffer 手动扩容,防止下标越界StringBuffer的API:setCharAt,charAt等public class Solu...原创 2018-09-12 23:30:36 · 316 阅读 · 0 评论 -
[剑指offer题解][Java]队列的最大值/滑动窗口的最大值
题目链接:https://www.nowcoder.com/questionTerminal/1624bc35a45c42c0bc17d17fa0cba788 来源:牛客网给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{...原创 2018-09-12 23:25:23 · 348 阅读 · 0 评论