![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
YaDe.
这个作者很懒,什么都没留下…
展开
-
剑指offer(59)——滑动窗口的最大值
文章目录一、题目描述二、解题思路1、思路一:暴力法1.1 代码实现1.2 复杂度分析2、思路二:双端队列2.1 算法思路2.2 代码实现2.3 复杂度分析 一、题目描述 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 --------------- --原创 2020-12-24 23:41:40 · 158 阅读 · 0 评论 -
剑指offer(29)——顺时针打印矩阵
文章目录一、题目描述二、解题思路算法分析 一、题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 例2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 二、解题思路 从左到右,从上到下,从右到左,从下到上依次遍历二维数组。 publi原创 2020-12-23 23:00:50 · 160 阅读 · 0 评论 -
剑指offer(4)——二维数组中的查找
文章目录一、题目描述二、解题思路代码实现 一、题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现在有矩阵matrix如下: [ [1,2,8 ,9 ], [2,4,9 ,12], [4,7,10,13], [6,8,11,15] ] 查找数字7,返回true;查找数字5,返回false。 二、解题思路 因为二维数组中从左到右,从上到下都是递增的,从右上角开原创 2020-12-23 20:13:34 · 107 阅读 · 0 评论 -
剑指offer(3)——数组中重复的数字
文章目录一、题目描述二、解题思路1、排序2、哈希表算法说明代码实现复杂度分析3、原地置换算法说明算法流程代码实现复杂度分析 一、题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3。如果没有重复的数字,返回-1; 二、解题思路 1、排序 只需要将输入的数组原创 2020-12-23 17:52:17 · 129 阅读 · 0 评论 -
剑指offer(22)——链表中倒数第k个节点
文章目录一、题目描述二、思路1、暴力解法2、快慢指针法 一、题目描述 题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 二、思路 1、暴力解法 把链表遍历一遍,将所有节点存储在list中,然后取倒数第k个节点即可。这样做的时间复杂度为:O(n),空间复杂度为O(n)。 代码实现: public static ListNode findKthToTail(ListNode head, int k) { ArrayList原创 2020-12-12 15:07:36 · 81 阅读 · 0 评论 -
剑指offer(35)——复杂链表的复制
文章目录一、题目描述二、解题思路一、哈希表算法说明算法流程代码实现复杂度分析二、拼接 + 拆分算法说明算法流程代码实现复杂度分析 一、题目描述 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 public class Node { int val; Node next; Node random; public Node(int原创 2020-12-12 15:04:13 · 107 阅读 · 0 评论