剑指offer
cheerful_man
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer第六周(完)
剑指offer第六周 79. 滑动窗口的最大值 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。 例如,如果输入数组[2, 3, 4, 2, 6, 2, 5, 1]及滑动窗口的大小3,那么一共存在6个滑动窗口,它们的最大值分别为[4, 4, 6, 6, 6, 5]。 注意: 数据保证k大于0,且k小于等于数组长度。 样例 输入:[2, 3, 4, 2, 6, 2, 5, 1] , k=3 输出: [4, 4, 6, 6, 6, 5] 单调队列模板 — 注意放的是下标 class So原创 2020-06-24 11:24:52 · 190 阅读 · 0 评论 -
剑指offer第五周残缺
剑指offer第五周残缺版 73. 数组中只出现一次的两个数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。 你可以假设这两个数字一定存在。 样例 输入:[1,2,3,3,4,4] 输出:[1,2] 数组中只有两个数字出现一次,其余数字都出现两次。 根据 a ^ a = 0得,如果将数组所有数字做异或即得到 此唯独出现一次的两个数字的异或; 然后根据位 进行分组,即可; class Solution { public int[] findNu原创 2020-06-20 12:23:53 · 182 阅读 · 0 评论 -
剑指offer第五周
剑指offer第五周 57.数字序列中某一位的数字 数字以0123456789101112131415…的格式序列化到一个字符序列中。 在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。 请写一个函数求任意位对应的数字。 样例 输入:13 输出:1 思路全在代码中 class Solution { public int digitAtIndex(int n) { // base 为当前位数的起点(0,10,100,1000) // i原创 2020-06-07 20:56:39 · 219 阅读 · 0 评论 -
剑指offer第四周
46.二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 如果是则返回true,否则返回false。 假设输入的数组的任意两个数字都互不相同。 样例 输入:[4, 8, 6, 12, 16, 14, 10] 输出:true 后续遍历,故最后一个节点一定是根节点,而中间一定从某一个位置分开,其左边全部为左子树,右边全部为右子树,只要判断左子树全部比根小,右子树比根大递归下去,看是否满足,如果找不到这个点,则返回false; class Solution {原创 2020-06-02 10:01:28 · 1030 阅读 · 0 评论 -
剑指offer第三周
剑指Offer第三周 35.反转链表 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 思考题: 请同时实现迭代版本和递归版本。 样例 输入:1->2->3->4->5->NULL 输出:5->4->3->2->1->NULL pre,cur,next,暴力翻转 pre = null,cur = pre, pre = cur,cur = next; 翻转 模板 class Solution { publi原创 2020-05-24 01:17:31 · 205 阅读 · 3 评论 -
剑指offer第二周
剑指offer第二周 24.机器人的运动范围 地上有一个 mm 行和 nn 列的方格,横纵坐标范围分别是 0∼m−10∼m−1 和 0∼n−10∼n−1。 一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格。 但是不能进入行坐标和列坐标的数位之和大于 kk 的格子。 请问该机器人能够达到多少个格子? 样例1 输入:k=7, m=4, n=5 输出:20 样例2 输入:k=18, m=40, n=40 输出:1484 解释:当k为18时,机器人能够进入方格(35,37),原创 2020-05-20 09:53:11 · 209 阅读 · 0 评论 -
剑指offer-第一周
剑指offer 第一周 acwing-13.找出数组中重复的数字 给定一个长度为 nn 的整数数组 nums,数组中所有的数字都在0∼n−1 的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 注意:如果某些数字不在0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1; 样例 给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。 返回 2 或 3。 利用Set存储; set 存储时间复杂度O(1),所以此原创 2020-05-16 20:16:57 · 244 阅读 · 0 评论
分享