剑指Offer
剑指Offer
ShawnYue_08
这个作者很懒,什么都没留下…
展开
-
剑指Offer(十一)
文章目录1、队列的最大值2、n个骰子的点数3、扑克牌中的顺子4、圆圈中最后剩下的数字5、股票的最大利润1、队列的最大值请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1。class MaxQueue { public Deque<Integer> deque; public Linked原创 2020-08-21 21:44:00 · 96 阅读 · 0 评论 -
剑指Offer(十)
文章目录1、和为s的两个数字2、和为s的连续正数序列3、翻转单词顺序4、左旋转字符串5、滑动窗口的最大值 ※1、和为s的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]双指针class Solution { public int[] twoSum(int[] nums, int target) {原创 2020-08-20 23:14:39 · 99 阅读 · 0 评论 -
剑指Offer(九)
文章目录1、二叉搜索树的第K大节点2、二叉树深度3、平衡二叉树4、数组中数字出现的次数5、数组中数字出现的次数 II1、二叉搜索树的第K大节点给定一棵二叉搜索树,请找出其中第k大的节点。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val =原创 2020-08-19 19:09:56 · 113 阅读 · 0 评论 -
剑指Offer(八)
文章目录1、丑数2、第一个只出现一次的字符3、两个链表的第一个公共节点4、在排序数组中查找数字 I5、0-n-1中缺失的数字1、丑数我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。丑数的递推性质: 丑数只包含因子 2, 3, 5,因此有 “丑数 = 某较小丑数 × 某因子” (例如:10=5×2)。cla原创 2020-08-19 02:53:24 · 108 阅读 · 0 评论 -
剑指Offer(七)
文章目录1、数字序列中某一位的数字2、把数组排成最小的数3、把数字翻译成字符串4、礼物的最大价值5、最长不含重复字符的子字符串1、数字序列中某一位的数字数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。数字范围位数数字数量数位数量1-919910-99290180100-99939002700原创 2020-08-19 00:55:28 · 99 阅读 · 0 评论 -
剑指Offer(六)
文章目录1、最小的K个数2、数据流中的中位数3、连续子数组的最大和4、1-n整数中1出现的次数5、数组中的逆序对1、最小的K个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。class Solution { public int[] getLeastNumbers(int[] arr, int k) { if (arr.length == 0 || k == 0) return new i原创 2020-08-17 21:32:29 · 115 阅读 · 0 评论 -
剑指Offer(五)
文章目录1、复杂链表的复制2、二叉搜索树与双向链表3、序列化二叉树4、字符串排列5、数组中出现次数超过一半的数字1、复杂链表的复制请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。1、HashMap解法:/*// Definition for a Node.class Node { int val; Node next; Node r原创 2020-08-17 15:37:29 · 107 阅读 · 0 评论 -
剑指Offer(四)
文章目录1、不分行从上到下打印二叉树2、分行从上到下打印二叉树3、之字形打印二叉树4、二叉搜索树的后序遍历序列5、二叉树中和为某一值的路径1、不分行从上到下打印二叉树从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 3 / \ 9 20 / \ 15 7[3,9,20,15,7]/** * Definition for a binary tree node. * public class TreeNode { * int v原创 2020-08-16 16:38:12 · 109 阅读 · 0 评论 -
剑指Offer(三)
文章目录1、表示数值的字符串2、调整数组顺序使奇数位于偶数前面3、链表中倒数第K个节点4、反转链表5、合并两个排序的链表6、树的子结构7、二叉树的镜像8、对称的二叉树9、顺时针打印矩阵10、包含min函数的栈11、栈的压入、弹出序列1、表示数值的字符串请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。原创 2020-08-16 13:20:04 · 134 阅读 · 0 评论 -
剑指Offer(二)
文章目录1、机器人的运动范围 ※2、剪绳子 ※3、二进制中1的个数4、数值的整数次方5、删除链表的节点6、删除排序链表中的重复元素 I6、删除排序链表中的重复元素 II ※1、机器人的运动范围 ※地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18原创 2020-08-14 19:43:49 · 187 阅读 · 0 评论 -
剑指Offer(一)
文章目录1、数组中的重复元素2、不修改数组找出重复的元素3、二维数组的查找4、替换空格5、从尾到头打印链表6、重建二叉树 ※7、二叉树的下一个节点 ※8、用两个栈实现一个队列9、斐波那契数列10、旋转数组的最小数字11、矩阵中的路径 ※1、数组中的重复元素找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。输入:[2, 3, 1, 0, 2,原创 2020-08-14 13:45:55 · 124 阅读 · 0 评论