fFee-ops's Blog
剑指 Offer 24. 反转链表 剑指 Offer 24. 反转链表
剑指 Offer 24. 反转链表 解题思路 代码 解题思路链表–>快慢指针,但是这题的快慢指针有点难理解奥?就理解成普通双指针也行。主要就是理清楚反转节点的步骤。 把需要反转的节点的下一个节点保存起来 反转当前节点,指向
2021-03-04
剑指 Offer 22. 链表中倒数第k个节点 剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点 解题思路 代码 解题思路链表嘛,第一反应快慢指针。让快指针先走k 步,然后快慢同时前进相同的步数,快指针走到null,慢指针的位置就是倒数第k个元素 代码/** * Definitio
2021-03-04
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 解题思路 代码 解题思路这题很简单,用左右指针即可。 注意啊:如果要求调整后元素的相对位置不能改变,那就要用冒泡排序 代码class Solution { public
2021-03-04
剑指 Offer 20. 表示数值的字符串 剑指 Offer 20. 表示数值的字符串
剑指 Offer 20. 表示数值的字符串 解题思路 代码 解题思路这题乍一看题目都看不懂???其实只要总结一下规律,只有以下几种情况是合法的: ‘.’出现正确情况:只出现一次,且在e的前面 ‘e’出现正确情况:只出现一次,且出现
2021-03-04
剑指 Offer 19. 正则表达式匹配 剑指 Offer 19. 正则表达式匹配
剑指 Offer 19. 正则表达式匹配 解题思路 代码 解题思路dp数组含义:dp[i][j] 代表 A的前 i 个字符和 B 的前 j 个字符能否匹配 转移方程: 需要注意,由于 dp[0][0]代表的是空字符的状态, 因此 d
2021-03-04
剑指 Offer 18. 删除链表的节点 剑指 Offer 18. 删除链表的节点
剑指 Offer 18. 删除链表的节点 解题思路 代码 解题思路单链表,一看就用快慢指针。没啥说的 代码/** * Definition for singly-linked list. * public class ListNo
2021-03-03
剑指 Offer 17. 打印从1到最大的n位数 剑指 Offer 17. 打印从1到最大的n位数
剑指 Offer 17. 打印从1到最大的n位数 解题思路 解题思路详情见这篇题解。以下的代码是考虑大数、n从0开始、返回的是字符串的解题代码 class Solution { int[] res; int cou
2021-03-03
剑指 Offer 16. 数值的整数次方 剑指 Offer 16. 数值的整数次方
剑指 Offer 16. 数值的整数次方 解题思路 代码 解题思路这题用快速幂 来解决。重点:快速幂计算x^n 时,把n看成二进制数。 举例: 状态 遍历位 n base res 初始化 -- 10
2021-03-03
剑指 Offer 15. 二进制中1的个数 剑指 Offer 15. 二进制中1的个数
剑指 Offer 15. 二进制中1的个数 解题思路 代码 解题思路第一种常规解法:不断右移n。 public class Solution { public int hammingWeight(int n) {
2021-03-03
剑指 Offer 14- II. 剪绳子 II 剑指 Offer 14- II. 剪绳子 II
剑指 Offer 14- II. 剪绳子 II 解题思路 代码 解题思路和剪绳子Ⅰ 思路一样,多了个取模运算而已。 代码class Solution { public int cuttingRope(int n) {
2021-03-03
剑指 Offer 14- I. 剪绳子 剑指 Offer 14- I. 剪绳子
剑指 Offer 14- I. 剪绳子 解题思路 代码 解题思路本题可以使用动态规划和贪心算法,但是由于贪心算法比动态规划要快!所以我们选择贪心算法。 其实这个题目有数学的规律,也即是把绳子切分成长度为3的小段,并且切分成的段越多,乘
2021-03-03
剑指 Offer 13. 机器人的运动范围 剑指 Offer 13. 机器人的运动范围
剑指 Offer 13. 机器人的运动范围 解题思路 代码 解题思路本题是是典型的搜索问题,可以用DFS来解决。这题右两个 前置知识需要理解。 数位之和计算:可通过循环求得数位和 s ,数位和计算的封装函数如下所示 int sum
2021-03-03
9 / 21