上一页 1 2 3 4 5 6 7 8 ··· 31 下一页
摘要: 思路: 画出递归树可以看出,存在重叠子问题,且具有最优子结构,因此可以使用 动态规划 解决。 (1)使用递归进行编码, 提交到力扣会超时 class Solution { public int integerBreak(int n) { return breakInteger(n); } // 将n 阅读全文
posted @ 2021-01-01 11:38 不学无墅_NKer 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 思路: 参考左神P187 1. 状态的定义:dp[i][j]表示从左上角即(0,0)位置走到(i,j)位置的最小路径和。 2. 特殊情况: 对于矩阵第一行的所有位置,从(0,0)走到(0,j)只能一直往右走。同理, 对于矩阵第一列的所有位置,从(0,0)走到(i,0)只能一直往下走。 3. 除了第一 阅读全文
posted @ 2020-12-31 15:20 不学无墅_NKer 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 【举一反三】:最大路径和——数字三角形问题(动态规划) ☆☆☆思路:动态规划 ——> 空间优化(使用一维数组而不是二维数组,这样只使用了O(n)的额外空间。) class Solution { public int minimumTotal(List<List<Integer>> triangle) 阅读全文
posted @ 2020-12-31 10:26 不学无墅_NKer 阅读(107) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆☆☆思路:与N皇后问题类似。 class Solution { public void solveSudoku(char[][] board) { if (board == null || board.length == 0) return; dfs(board); } private boo 阅读全文
posted @ 2020-12-30 19:57 不学无墅_NKer 阅读(106) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆☆思路:如果在(i,j)处放置了一个皇后,那么 1. 整个第 i 行的位置都不能放置; 2. 整个第 j 列的位置都不能放置。 3. 如果位置(a,b)满足|a-i|==|b-j|,说明(a,b)和(i,j)处在同一条斜线上,也不能放置。 代码1(参考左神书,耗时2ms): class Sol 阅读全文
posted @ 2020-12-30 15:56 不学无墅_NKer 阅读(67) 评论(0) 推荐(0) 编辑
摘要: N皇后问题也可以转化为树形问题,每一层代表格子的一行,每一个节点都有N种选择。 思路1:以52题的解法为基础,当递归到底时,根据record[]数组的状态信息,还原出皇后的位置。 判断斜线的方法(参考左神):如果(a,b)满足|a-i|==|b-j|,说明(a,b)和(i,j)处在同一条斜线上。 思 阅读全文
posted @ 2020-12-30 15:44 不学无墅_NKer 阅读(120) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆思路:类似于130题。从边界开始扩展。 建立两个矩阵Atlantic和Pacific, 当Atlantic[i][j]和Pacific[i][j]同时为true时表示该位置可以同时到达Atlantic和Pacific 遍历时的技巧为: 只需要从四个边界开始遍历即可(类似Flood Fill的思 阅读全文
posted @ 2020-12-29 17:18 不学无墅_NKer 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 思路1:DFS 如果把X看作海水,O看作陆地,被海水包围的就是岛屿。没有被海水包围的陆地,与边界有连通,就不是岛屿。判断是否是岛屿比较困难,问题转化为先找出非岛屿(凡是与边界有联系的O),即对边界上的 O 特殊处理。根据题意,四个边的 0 以及与其相邻的 0 都不能被替换为X,因此从边界向里面扩展。 阅读全文
posted @ 2020-12-29 15:56 不学无墅_NKer 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 思路:本题是经典的Flood Fill(泛洪)问题,即染色问题 或 颜色填充问题。 这类问题需要把与(i,j)相连接的岛屿都标记上,而不是在其中找到某个序列或者某个值,所以只标记true,不需要进行状态重置。 代码1(修改输入数据): class Solution { public int numI 阅读全文
posted @ 2020-12-29 12:24 不学无墅_NKer 阅读(92) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆☆思路:二维平面上的回溯法。 先将问题转化为树形问题,每一个点都有四个方向可以走,若规定顺时针即为“上->右->下->左”。 注意:关于标记某个格子是否被访问过有两个思路,一是设置visited[][]布尔数组,二是直接修改输入数据,回溯时再改回来。 在具体面试中,需要询问面试官是否可以修改输 阅读全文
posted @ 2020-12-29 11:13 不学无墅_NKer 阅读(91) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 31 下一页