fFee-ops's Blog
03
09
剑指 Offer 60. n个骰子的点数 剑指 Offer 60. n个骰子的点数
剑指 Offer 60. n个骰子的点数 解题思路 代码 解题思路解题前须知本题可用动态规划求解1、我们先建立二维 dp 数组,dp[n][s] 表示投掷 n 个骰子,n 个朝上的面的点数之和为 s 的事件出现的次数。 2、那么动态转
2021-03-09
09
剑指 Offer 59 - II. 队列的最大值 剑指 Offer 59 - II. 队列的最大值
剑指 Offer 59 - II. 队列的最大值 解题思路 代码 解题思路这个需要翻译一下题目,不然题目比较难懂。 3、 "push_back" 向队列传入元素 [2] 传入的值为
2021-03-09
09
剑指 Offer 59 - I. 滑动窗口的最大值 剑指 Offer 59 - I. 滑动窗口的最大值
剑指 Offer 59 - I. 滑动窗口的最大值 解题思路 代码 ) 解题思路和滑动窗口有关的题目直接用单调队列。本题难点是创建出单调队列 代码class Solution { /* 实现单调队列 *
2021-03-09
09
剑指 Offer 58 - II. 左旋转字符串 剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串 解题思路 代码 解题思路直接切片,如果面试不让切片,那就用stringBuilder来拼接 class Solution { public String reverseLeft
2021-03-09
09
剑指 Offer 58 - I. 翻转单词顺序 剑指 Offer 58 - I. 翻转单词顺序
剑指 Offer 58 - I. 翻转单词顺序 解题思路 代码 解题思路这题可以理解为反转数组,只不过数组是个字符串罢了,可以用双指针!。 倒序遍历字符串 s ,记录单词左右索引边界 i , j ; 每确定一个单词的边界,则将其添加
2021-03-09
08
08
剑指 Offer 57. 和为s的两个数字 剑指 Offer 57. 和为s的两个数字
剑指 Offer 57. 和为s的两个数字 解题思路 代码 解题思路有序数组直接无脑二分搜索,但本题并不能算标准的二分搜索,因为没用上mid,可以理解为双指针嘛 代码class Solution { public int[]
2021-03-08
08
剑指 Offer 56 - II. 数组中数字出现的次数 II 剑指 Offer 56 - II. 数组中数字出现的次数 II
剑指 Offer 56 - II. 数组中数字出现的次数 II 解题思路 代码 解题思路如果数组中的数字除一个只出现一次之外,其他数字都出现了两次。我们可以如Solution56_1一样用异或位运算(^)解决这个问题。 上述思路不能解
2021-03-08
08
剑指 Offer 56 - I. 数组中数字出现的次数 剑指 Offer 56 - I. 数组中数字出现的次数
剑指 Offer 56 - I. 数组中数字出现的次数 解题思路 代码 解题思路由于数组中存在着两个数字不重复的情况,我们将所有的数字异或操作起来,最终得到的结果是这两个数字的异或结果:(相同的两个数字相互异或,值为0)) 最后结果一
2021-03-08
08
剑指 Offer 55 - II. 平衡二叉树 剑指 Offer 55 - II. 平衡二叉树
剑指 Offer 55 - II. 平衡二叉树 解题思路 代码 解题思路定义一个成员变量res,自顶向下遍历,在每次求出树的最大深度的过程中,要求左子树的最大深度和右子树的最大深度,每求出一个节点的左子树的最大深度和右子树的最大深度就
2021-03-08
08
剑指 Offer 55 - I. 二叉树的深度 剑指 Offer 55 - I. 二叉树的深度
剑指 Offer 55 - I. 二叉树的深度 解题思路 代码 解题思路很简单的递归,找到左子树和右子树的深度,取最大的,然后加上根节点的那个深度就是答案 代码/** * Definition for a binary tree n
2021-03-08
07
12 / 26