fFee-ops's Blog
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 解题思路 代码 解题思路 本题用 递归 这题有三个大情况: ①p,q都在以root为根的树中,返回p,q的最近公共祖先 ②p,q都不
2021-03-10
剑指 Offer 68 - II. 二叉树的最近公共祖先 剑指 Offer 68 - II. 二叉树的最近公共祖先
剑指 Offer 68 - II. 二叉树的最近公共祖先 解题思路 代码 解题思路和剑指 Offer 68 \- I. 二叉搜索树的最近公共祖先思路一样 代码/** * Definition for a binary tree no
2021-03-10
剑指 Offer 65. 不用加减乘除做加法 剑指 Offer 65. 不用加减乘除做加法
剑指 Offer 65. 不用加减乘除做加法 解题思路 代码 解题思路本题考的是位运算。 前置知识: ^ 亦或 —-相当于 无进位的求和 与(&) 然后左移(<<)—-相当于求每位的进位数 来解释一下上面的前置
2021-03-09
剑指 Offer 64. 求1+2+…+n 剑指 Offer 64. 求1+2+…+n
剑指 Offer 64. 求1+2+…+n 解题思路 代码 解题思路核心是用逻辑运算符的短路效应来结束递归 代码class Solution { int res=0; public int sumNums(i
2021-03-09
剑指 Offer 63. 股票的最大利润 剑指 Offer 63. 股票的最大利润
剑指 Offer 63. 股票的最大利润 解题思路 代码 解题思路直接动态规划。 dp数组含义:dp[i]代表 前 i 日的最大利润 状态转移方程:前i日最大利润=max(前(i−1)日最大利润,第i日价格−前i日最低价格) 代
2021-03-09
剑指 Offer 62. 圆圈中最后剩下的数字 剑指 Offer 62. 圆圈中最后剩下的数字
剑指 Offer 62. 圆圈中最后剩下的数字 解题思路 代码 解题思路著名的约瑟夫环问题。 分析 最后只剩下一个元素,假设这个最后存活的元素为 num, 这个元素最终的的下标一定是0 (因为最后只剩这一个元素), 所以如果我们可以推
2021-03-09
剑指 Offer 61. 扑克牌中的顺子 剑指 Offer 61. 扑克牌中的顺子
剑指 Offer 61. 扑克牌中的顺子 解题思路 代码 解题思路本题主要知道两点, 有重复肯定不是顺子 顺子最大值减去最小值<=4,因为最多只有5张牌,可以自己举个例子看看 代码class Solution {
2021-03-09
剑指 Offer 60. n个骰子的点数 剑指 Offer 60. n个骰子的点数
剑指 Offer 60. n个骰子的点数 解题思路 代码 解题思路解题前须知本题可用动态规划求解1、我们先建立二维 dp 数组,dp[n][s] 表示投掷 n 个骰子,n 个朝上的面的点数之和为 s 的事件出现的次数。 2、那么动态转
2021-03-09
剑指 Offer 59 - II. 队列的最大值 剑指 Offer 59 - II. 队列的最大值
剑指 Offer 59 - II. 队列的最大值 解题思路 代码 解题思路这个需要翻译一下题目,不然题目比较难懂。 3、 "push_back" 向队列传入元素 [2] 传入的值为
2021-03-09
剑指 Offer 59 - I. 滑动窗口的最大值 剑指 Offer 59 - I. 滑动窗口的最大值
剑指 Offer 59 - I. 滑动窗口的最大值 解题思路 代码 ) 解题思路和滑动窗口有关的题目直接用单调队列。本题难点是创建出单调队列 代码class Solution { /* 实现单调队列 *
2021-03-09
剑指 Offer 58 - II. 左旋转字符串 剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串 解题思路 代码 解题思路直接切片,如果面试不让切片,那就用stringBuilder来拼接 class Solution { public String reverseLeft
2021-03-09
剑指 Offer 58 - I. 翻转单词顺序 剑指 Offer 58 - I. 翻转单词顺序
剑指 Offer 58 - I. 翻转单词顺序 解题思路 代码 解题思路这题可以理解为反转数组,只不过数组是个字符串罢了,可以用双指针!。 倒序遍历字符串 s ,记录单词左右索引边界 i , j ; 每确定一个单词的边界,则将其添加
2021-03-09
20 / 71