摘要: 思路1 这个思路比较简单,就类似于图的遍历算法,用递归来解。递归的基线条件是到达目的地或者是走到了边界。递归的条件是机器人从一个点只能往下走或者往右走,即x = x + 1或者y = y+1。 到达某一格的路径数量等于它的上面和左边的路径数之和。 C语言实现 但是上面代码在LeetCode上运行,会 阅读全文
posted @ 2019-09-12 18:37 尚修能的技术博客 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 《算法图解》书 动态规划章节读书笔记 1 对于背包问题,可以偷商品的一部分吗? 答:不可以,使用动态规划问题时,要么考虑拿走整件商品,要么考虑不拿,而没法判断该不该拿走商品的一部分。 2 动态规划能处理相互依赖的情况吗? 答:不可以,仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用。 阅读全文
posted @ 2019-09-12 10:06 尚修能的技术博客 阅读(169) 评论(0) 推荐(0) 编辑
摘要: C++ STL中,哈希表对应的容器是 unordered_map(since C++ 11)。根据 C++ 11 标准的推荐,用 unordered_map 代替 hash_map。 与Map的区别 STL中,map 对应的数据结构是 红黑树 。红黑树是一种近似于平衡的二叉查找树,里面的数据是有序的 阅读全文
posted @ 2019-09-12 09:54 尚修能的技术博客 阅读(617) 评论(0) 推荐(0) 编辑
摘要: Map的常见函数 Map的实现机制 STL中的Map底层实现机制是RB树(红 黑树) 阅读全文
posted @ 2019-09-12 09:54 尚修能的技术博客 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目思路1 这道题LeetCode上的标签是Dynamic programming,即动态规划,第一个思路就是用动态规划来解。 首先维护一个二维数组dp[j][i]。这个动态数组表示[j, i]之间是否有回文。当j = i时,只有一个字符,肯定是回文,当 j + 1 = i 时,说明是相邻 阅读全文
posted @ 2019-09-12 09:26 尚修能的技术博客 阅读(107) 评论(0) 推荐(0) 编辑