剑指offer
bugMaker_Anna
Code shows everything ヾ(●´▽`●)ノ
展开
-
【剑指offer】40. 最小的k个数
剑指 Offer 40. 最小的k个数题目描述解题思路1. 最大堆2. 快速排序(最高效)3. 冒泡排序 这道题分成两道,一道是不考虑答案取模,一道考虑取模。 题目描述 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], k = 1 输出:[0] 限制: 0 <= k &原创 2020-09-23 15:06:38 · 79 阅读 · 0 评论 -
【剑指offer】14. 剪绳子
剑指 Offer 14. 剪绳子题目描述1. 题目一2. 题目二解题思路(题目一)1. 动态规划2. 贪婪算法解题思路(题目二) 这道题分成两道,一道是不考虑答案取模,一道考虑取模。 题目描述 1. 题目一 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0] * k[1] * … * k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三原创 2020-09-22 15:45:25 · 97 阅读 · 0 评论 -
【剑指offer】11. 旋转数组的最小数字
剑指 Offer 11. 旋转数组的最小数字题目描述解题思路代码 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输入:[3,4,5,1,2] 输出:1 示例 2: 输入:[2,2,2,0,1] 输出:0 解题思路 类似二分查找的思想。令left=0,right=numbers.length-1,每次计算mid =原创 2020-09-22 10:48:58 · 61 阅读 · 0 评论 -
【剑指offer】7. 重建二叉树
剑指 Offer 07. 重建二叉树题目描述解题思路1. 递归2. 迭代代码 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 限制: 0 <= 节点个数 <= 5000 解题思路 根据二叉树的前序原创 2020-09-21 21:59:50 · 78 阅读 · 0 评论 -
【剑指offer】3. 数组中重复的数字
剑指 Offer 03. 数组中重复的数字题目描述解题思路1. 暴力搜索2. 可修改原数组的算法3. 不可修改原数组的算法(1)辅助空间(2)二分查找 题目描述 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制: 2 <= n <= 100000 解题原创 2020-09-21 19:24:26 · 77 阅读 · 0 评论