fFee-ops's Blog
03
20
448. 找到所有数组中消失的数字(高频题) 448. 找到所有数组中消失的数字(高频题)
448. 找到所有数组中消失的数字 解题思路 代码 解题思路将所有正数作为数组下标,置对应数组值为负值。那么,仍为正数的位置即为(未出现过)消失的数字。 举个例子: 原始数组:[4,3,2,7,8,2,3,1] 重置后为:[-4,
2021-03-20
20
399. 除法求值(高频题) 399. 除法求值(高频题)
399. 除法求值 解题思路 代码 解题思路一刷2021/3/20,没弄明白,题解见这里 代码// 定义邻接节点类 class Node { // 邻接节点代表的字符串 public String id; //
2021-03-20
20
394. 字符串解码(高频题) 394. 字符串解码(高频题)
394. 字符串解码 解题思路 代码 解题思路这题主要用到了栈,本题难点在于括号内嵌套括号,需要从内向外生成与拼接字符串,这与栈的先入后出特性对应。 算法流程1、构建辅助栈 stack, 遍历字符串 s 中每个字符 c; 当 c 为
2021-03-20
19
338. 比特位计数(高频题) 338. 比特位计数(高频题)
338. 比特位计数 解题思路 代码 解题思路其实这就是一个数学题,找到规律了就很简单 一个数比如a,如果是偶数,那么a比特位1的个数和(a/2)比特位1的个数是一样的,因为一个数是偶数那么他的二进制比他的一半的二进制只是多了一个0
2021-03-19
19
322. 零钱兑换(高频题) 322. 零钱兑换(高频题)
322. 零钱兑换 解题思路 代码 解题思路这题典型的**动态规划套路下的 完全背包问题**,主要注意 需要求的是最小值,那我们就需要先给dp数组全都赋一个最大值,一般常取Integer.MAX_VALUE,这个题目中,因为amou
2021-03-19
19
309. 最佳买卖股票时机含冷冻期(高频题) 309. 最佳买卖股票时机含冷冻期(高频题)
309. 最佳买卖股票时机含冷冻期 解题思路 代码 解题思路买卖股票问题都可以用动态规划,具体思路见这里 写状态转移方程的时候注意,绝大部分都是找到前一个状态和目前状态的关系比如: dp[i][0]=Math.max(dp[i-1]
2021-03-19
19
301. 删除无效的括号(高频题) 301. 删除无效的括号(高频题)
301. 删除无效的括号 解题思路 代码 解题思路要用回溯算法,一刷2021/3/19,没有完全弄明白 最开始看到题目要求删除最小括号数目,我想的是dp,但是最后它要你返回的又是字符串的组合,所以就要回溯。整体思路比较简单: 统
2021-03-19
19
283. 移动零(高频题) 283. 移动零(高频题)
283. 移动零 解题思路 代码 解题思路很简单的双指针,每次交换,都是将左指针的零与右指针的非零数交换,且非零数的相对顺序并未改变。 代码class Solution { public void moveZeroes(int
2021-03-19
19
221. 最大正方形(高频题) 221. 最大正方形(高频题)
221. 最大正方形 解题思路 代码 解题思路一看求最大面积,而且感觉后一步和前一步之间还有联系,并且问题规模可以很大,直接动态规划。 题解见这里 代码class Solution { public int maximalSq
2021-03-19
19
207. 课程表(高频题) 207. 课程表(高频题)
207. 课程表 解题思路 代码 解题思路这种有先决顺序的工程安排问题一般就是_拓扑排序_,这道题是拓扑排序的裸题。 拓扑排序其实一般就利用Map把拓扑图构建出来,然后用BFS去遍历拓扑图就好了。 则本题的大概思路为: 统计每个课
2021-03-19
19
19
148. 排序链表(高频题) 148. 排序链表(高频题)
148. 排序链表 解题思路 代码 解题思路这题想到要排序,是链表。用快慢指针,还需要扩展一下,归并排序。但是要注意,这里的归并排序和 给数组归并排序有一丢丢的不同,因为这个链表不支持随机访问 代码/** * Definition
2021-03-19
8 / 26