fFee-ops's Blog
剑指 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
剑指 Offer 57 - II. 和为s的连续正数序列 剑指 Offer 57 - II. 和为s的连续正数序列
剑指 Offer 57 - II. 和为s的连续正数序列 解题思路 代码 解题思路这题根本来说还可以转化为和数组有关的问题,要用双指针中的滑动窗口来解决。 代码class Solution { public int[]
2021-03-08
剑指 Offer 57. 和为s的两个数字 剑指 Offer 57. 和为s的两个数字
剑指 Offer 57. 和为s的两个数字 解题思路 代码 解题思路有序数组直接无脑二分搜索,但本题并不能算标准的二分搜索,因为没用上mid,可以理解为双指针嘛 代码class Solution { public int[]
2021-03-08
5 / 21