![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
文章平均质量分 84
在路上的旅客
这个作者很懒,什么都没留下…
展开
-
剑指offer-剪绳子
剑指offer-剪绳子JZ14 剪绳子JZ83 剪绳子(进阶版)JZ14 剪绳子题目地址描述给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 ,m <= n ),每段绳子的长度记为 k[1],…,k[m] 。请问 k[1]k[2]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8 时,我们把它剪成长度分别为 2、3、3的三段,此时得到的最大乘积是18。数据范围:2≤n≤60进阶:空间复杂度 O(1) ,时间原创 2021-12-06 01:01:14 · 110 阅读 · 0 评论 -
剑指offer-调整数组顺序使奇数位于偶数前面
剑指offer-调整数组顺序使奇数位于偶数前面JZ21 调整数组顺序使奇数位于偶数前面(一)JZ81 调整数组顺序使奇数位于偶数前面(二)JZ21 调整数组顺序使奇数位于偶数前面(一)题目地址描述输入一个长度为 n 整数数组,数组里面不含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。数据范围:0≤n≤5000,数组中每个数的值0≤val≤10000要求:时间复杂度 O(n),空间原创 2021-12-04 21:08:09 · 127 阅读 · 0 评论 -
2021/11/21日,剑指offer--模拟
剑指offer--模拟JZ29 顺时针打印矩阵JZ61 扑克牌顺子JZ67 把字符串转换成整数(atoi)JZ20 表示数值的字符串JZ29 顺时针打印矩阵题目地址描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]则依次打印出数字[1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10]数据范围:0 <= mat原创 2021-11-21 00:06:14 · 297 阅读 · 0 评论 -
2021-11-15剑指offer--位运算
剑指offer--位运算JZ65 不用加减乘除做加法JZ15 二进制中1的个数JZ16 数值的整数次方JZ56 数组中只出现一次的两个数字JZ64 求1+2+3+...+nJZ65 不用加减乘除做加法题目地址描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。数据范围:两个数都满足 0 ≤ n ≤ 1000进阶:空间复杂度 O(1),时间复杂度 O(1)示例1输入:1,2返回值:3示例2输入:0,0返回值:0解题思路对于数A(i)(1或0原创 2021-11-15 22:04:24 · 102 阅读 · 0 评论 -
2021-11-11剑指offer--排序
剑指offer--排序JZ3 数组中重复的数字JZ51 数组中的逆序对JZ40 最小的K个数JZ41 数据流中的中位数JZ3 数组中重复的数字题目地址描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1数据范围:0 ≤ n ≤10000进阶:时间复杂度0(n),空原创 2021-11-11 13:49:42 · 1017 阅读 · 0 评论 -
2021-11-08 剑指offer--回溯
剑指offer--回溯JZ12 矩阵中的路径JZ13 机器人的运动范围JZ12 矩阵中的路径题目地址描述请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如[abcesfcsadee]\begin{bmatrix} a & b &c & e\\ s & f &a原创 2021-11-08 20:47:10 · 66 阅读 · 0 评论 -
2021-11-02 剑指offer--动态规划
剑指offer--动态规划JZ42 连续子数组的最大和JZ69 跳台阶JZ10 斐波那契数列JZ71 跳台阶扩展问题JZ70 矩形覆盖JZ42 连续子数组的最大和题目地址描述输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。数据范围:1 <= n <= 10^5-100 <= a[i] <= 100要求:时间复杂度为 O(n),空间复杂度为 O(n)进阶:时间复杂度为 O(n),空间复杂度为 O(1)示例1原创 2021-11-05 22:07:03 · 127 阅读 · 0 评论 -
2021-10-29 剑指offer(队列&栈)
剑指offer--队列&栈JZ9 用两个栈实现队列JZ30 包含min函数的栈JZ31 栈的压入、弹出序列JZ9 用两个栈实现队列题目地址描述用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。数据范围:n≤1000要求:存储n个元素的空间复杂度为 O(n) ,插入与删除的时间复杂度都是 O(1)示例1输入:["PSH1","PSH2",原创 2021-11-02 22:56:24 · 149 阅读 · 0 评论 -
2021-10-27剑指offer---树(部分题解)
剑指offer---树篇JZ8 二叉树的下一个结点JZ79 平衡二叉树JZ36 二叉搜索树与双向链表JZ8 二叉树的下一个结点题目地址描述给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。下图为一棵有9个节点的二叉树。树中从父节点指向子节点的指针用实线表示,从子节点指向父节点的用虚线表示示例:输入:{8,6,10,5,7,9,11},8返回:9解析:这个组装传入的子树根节点,其实就是整颗树,中序遍历{原创 2021-10-29 12:08:39 · 126 阅读 · 0 评论 -
2021-10-27剑指offer---树(序列化分序列化;对称的二叉树;把二叉树打印成多行)
剑指offer---树篇续JZ37 序列化二叉树JZ78 把二叉树打印成多行JZ28 对称的二叉树JZ37 序列化二叉树题目地址描述请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。二叉树的序列化(Serialize)是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树等遍历方式来进行修改,序列化的结果是原创 2021-10-27 13:56:21 · 85 阅读 · 0 评论 -
2021-10-25
剑指offer-树2JZ26 树的子结构JZ32 从上往下打印二叉树JZ33 二叉搜索树的后序遍历序列JZ34 二叉树中和为某一值的路径JZ26 树的子结构题目地址描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)示例1输入:{8,8,#,9,#,2,#,5},{8,9,#,2}返回值:true解题思路遍历树A,每当遍历到的结点的值==树B根节点的值,就从当前相等结点遍历,判断从相等结点开始往后时候相等。如图,遍历到A树的第二层最左边结点原创 2021-10-25 23:02:15 · 116 阅读 · 0 评论 -
2021-10-20
剑指offer-树JZ55 二叉树的深度JZ77 按之字形顺序打印二叉树JZ54 二叉搜索树的第k个结点JZ7 重建二叉树JZ55 二叉树的深度题目地址描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。示例1输入:{1,2,3,4,5,#,6,#,#,7}返回值:4方法一 :递归import java.util.*;/**public class TreeNode { int val = 0;原创 2021-10-21 16:59:31 · 76 阅读 · 0 评论 -
2021-10-18 剑指offer-链表下篇
剑指offer-链表下篇·JZ22 链表中倒数最后K个结点·JZ35 复杂链表的复制·JZ76 删除链表中重复的结点·JZ22 链表中倒数最后K个结点题目地址描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,输出一个链表,该输出链表包含原链表中从倒数第 k 个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0 <= n <= 10^50, 0 ≤ n ≤ 10 , 0 <=k <= 10^9要求:空间复杂度 O(n)O(原创 2021-10-19 20:25:09 · 83 阅读 · 0 评论 -
2021-10-18剑指offer-链表篇
剑指offer-链表上篇· JZ6 从尾到头打印链表· JZ24 反转链表·JZ25 合并两个排序的链表·JZ52 两个链表的第一个公共结点·JZ23 链表中环的入口结点· JZ6 从尾到头打印链表题目地址描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1输入:{1,2,3}复制返回值:[3,2,1]示例2输入:{67,0,24,原创 2021-10-18 17:41:59 · 157 阅读 · 0 评论