fFee-ops's Blog
剑指 Offer 47. 礼物的最大价值 剑指 Offer 47. 礼物的最大价值
剑指 Offer 47. 礼物的最大价值 解题思路 代码 解题思路拿现在东西的最大值和前面东西的状态有关,很容易想到动态规划。 dp数组含义: dp[i][j]代表从棋盘的左上角开始,到达单元格 (i,j)下标从0开始!! 时能拿到礼
2021-03-07
剑指 Offer 46. 把数字翻译成字符串 剑指 Offer 46. 把数字翻译成字符串
剑指 Offer 46. 把数字翻译成字符串 解题思路 代码 解题思路典型动态规划题目。首先定义dp数组含义:dp[i] 代表以nums[]中第i位数字为结尾的数字的翻译方案数量。 推导状态转移方程:比如数字6 2 4,手动推出应该有
2021-03-06
剑指 Offer 45. 把数组排成最小的数 剑指 Offer 45. 把数组排成最小的数
剑指 Offer 45. 把数组排成最小的数 解题思路 代码 解题思路此题求拼接起来的最小数字,本质上是一个排序问题。设数组 numsnums 中任意两数字的字符串为 x 和 y ,则规定 排序判断规则 为: 若拼接字符串 x +
2021-03-06
剑指 Offer 44. 数字序列中某一位的数字 剑指 Offer 44. 数字序列中某一位的数字
剑指 Offer 44. 数字序列中某一位的数字 解题思路 代码 解题思路主要思路就三步: 找到n应该在几位数中 找到n所在的那个数字 确定n是数字中的哪一位 具体思路理解:见这篇题解 代码class Solution {
2021-03-06
剑指 Offer 43. 1~n 整数中 1 出现的次数 剑指 Offer 43. 1~n 整数中 1 出现的次数
剑指 Offer 43. 1~n 整数中 1 出现的次数 解题思路 代码 解题思路将 1 ~ n 的个位、十位、百位、…的 1 出现次数相加,即为 1 出现的总次数。某位中 1出现次数的计算方法: 当 cur = 0时: 此位 1
2021-03-06
剑指 Offer 42. 连续子数组的最大和 剑指 Offer 42. 连续子数组的最大和
剑指 Offer 42. 连续子数组的最大和 解题思路 代码 解题思路最基本的动态规划题目,只要找准dp[i]的含义,那就十分简单 代码class Solution { public int maxSubArray(int[]
2021-03-06
剑指 Offer 41. 数据流中的中位数 剑指 Offer 41. 数据流中的中位数
剑指 Offer 41. 数据流中的中位数 解题思路 代码 解题思路这题用小顶堆+大顶堆来做。维护一个小顶堆,用来存放数组中较大的那一部分,维护一大顶堆,用来存放数组中较小的一部分。要始终保持小顶堆的最小值大于等于大顶堆的最大值。也就
2021-03-06
剑指 Offer 40. 最小的k个数 剑指 Offer 40. 最小的k个数
剑指 Offer 40. 最小的k个数 解题思路 代码 解题思路思路一:注意找前 K 大/前 K 小问题不需要对整个数组进行 O(NlogN)O(NlogN) 的排序!例如本题,直接通过快排切分排好第 K 小的数(下标为 K-1),那
2021-03-06
剑指 Offer 39. 数组中出现次数超过一半的数字 剑指 Offer 39. 数组中出现次数超过一半的数字
剑指 Offer 39. 数组中出现次数超过一半的数字 解题思路 代码 解题思路这题有两个方法; 方法一:正常思路可以先排序,再取中间值,中间值就是数组中出现次数超过一半的数字。因为一个元素占数组的一半以上,那肯定能到达中间位置。
2021-03-06
剑指 Offer 38. 字符串的排列 剑指 Offer 38. 字符串的排列
剑指 Offer 38. 字符串的排列 解题思路 代码 解题思路这道题其实就是字符上的全排列问题,使用回溯算法就可以完成。 代码class Solution { public String[] permutation(Stri
2021-03-06
剑指 Offer 35. 复杂链表的复制 剑指 Offer 35. 复杂链表的复制
剑指 Offer 35. 复杂链表的复制 解题思路 代码 解题思路利用哈希表的查询特点,考虑构建 原链表节点 和 新链表对应节点 的键值对映射关系,再遍历构建新链表各节点的 next 和 random 引用指向即可。 代码/* //
2021-03-05
剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 34. 二叉树中和为某一值的路径
剑指 Offer 34. 二叉树中和为某一值的路径 解题思路 代码 解题思路本题使用回溯法。主要思路是从根结点出发,用sum减去根节点的值,到达叶子节点后如果二者的差为0,证明本条路径满足要求。然后就是套回溯模板了 代码class S
2021-03-05
7 / 21