上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 28 下一页
摘要: 还是用一维动态规划中的“局部最优和全局最优法”。 内循环怎么写: dp[i] = Uw j = 1, ( w = i1/2) min(dp[i], dp[i - j*j] + 1); 写完之后做个test case, 看看初始值怎么写. 阅读全文
posted @ 2017-08-03 13:48 apanda009 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 矩阵dfs 走回路 的问题(最后没有在回走 Corner case), 先想好算法, 再自己画图走一遍试试, 递归出口, 注意 corner case, 什么时候符合题意, 什么时候往里面加元素, 边走边看需要 什么工具, 工具: map(方向), 结果容器, visited, 辅助容器或变量 阅读全文
posted @ 2017-08-03 12:10 apanda009 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 到叶子所以加(left == null && right == null && 当前值满足条件) 后序遍历 The basic idea is to subtract the value of current node from sum until it reaches a leaf node an 阅读全文
posted @ 2017-08-02 12:38 apanda009 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 矩阵的bfs, 考察: 1.哪些是先入队的? 外围? 还是遍历所有符合条件的? 此处改成Integer.Max_Value, 2.入队之后, 邻居元素怎么改让其入队. 怎么跳过不符合题意的元素, visited[] 是否使用 3一般用在改矩阵的题中 tips, 可以该元素e.g. 将'o' 改成'$ 阅读全文
posted @ 2017-08-02 11:45 apanda009 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 做个test case 看看起始点和终止点的位置, 构造树都不包括遍历过得 阅读全文
posted @ 2017-08-01 20:20 apanda009 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 分治法后序遍历建树 对数组, 输入值为数组(起始点和终止点控制数组的长度和节点的值 去掉用过的点的位置) : 1递归出口, if (prestart > preend || instart > inend) return null; 2构造节点, 根据数组的某个位置 3操作数组的长度, 起始点和终止 阅读全文
posted @ 2017-08-01 19:51 apanda009 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 递归后序遍历, 因为有返回值, 所以要后序遍历, 在递归回溯后返的时候进行操作: 一般在改变递归函数的输入值的时候加上 这句, 防止递归两次null改变两次输入值 if (root.left == null && root.right == null) { return root; } 先序遍历 阅读全文
posted @ 2017-08-01 10:49 apanda009 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 这道题让我们求二叉树的坡度,某个结点的坡度的定义为该结点的左子树之和与右子树之和的差的绝对值,这道题让我们求所有结点的坡度之和. 这道题最好的解法应该是用后序遍历来做,因为后序遍历的顺序是左-右-根,那么就会从叶结点开始处理,这样我们就能很方便的计算结点的累加和,同时也可以很容易的根据子树和来计算t 阅读全文
posted @ 2017-07-31 22:07 apanda009 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 用的list.addFist(); 达到左右根的目的. 节点值在加的时候, 先判断是否为空. listNode 也是哦 阅读全文
posted @ 2017-07-31 21:42 apanda009 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 算法: 根右左, 尾递归 容器: list 尾递归 corner case: 右没有怎么办, 加一个输入值表示深度, list.size() 也表示深度 The core idea of this algorithm: 1.Each depth of the tree only select one 阅读全文
posted @ 2017-07-31 21:37 apanda009 阅读(111) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 28 下一页