摘要:
动态规划 62. 不同路径 62. 不同路径 难度中等1205收藏分享切换为英文接收动态反馈 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多 阅读全文
摘要:
贪心算法 1)最自然智慧的算法 2)用一种局部最功利的标准,总是做出在当前看来是最好的选择 3)难点在于证明局部最功利的标准可以得到全局最优解 4)对于贪心算法的学习主要以增加阅历和经验为主 贪心算法和动态规划的区别: 适用于贪心算法的场景 背包问题 一篇文章吃透背包问题!(细致引入+解题模板+例题 阅读全文
摘要:
回溯 回溯法采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。 回溯法通常用最简单的递归方法来实现,在反复重复上述的步骤后可能出现两种情 阅读全文
摘要:
递归模板 public void recur(int level,int param){ //terminator1.终止条件 if(level > Max_Level){ // process result return; } // process current logic 2.每一层的逻辑 p 阅读全文
摘要:
树、二叉树、二叉搜索树 树 二叉树 LinkedList是特殊化的Tree,Tree是特殊化的Graph Public class TreeNode{ public int val; public TreeNode left,right; public TreeNode(int val){ this 阅读全文
摘要:
栈、队列、优先队列、双端队列 参考链接 Java 的 PriorityQueue 文档 Java 的 Stack 源码 Java 的 Queue 源码 Python 的 heapq 高性能的 container 库 栈Stack Stack Integer> stack = new Stack<>( 阅读全文
摘要:
数组、链表、跳表 Java 源码分析(ArrayList) Linked List 的标准实现代码 [Linked List 示例代码](http://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked Lists/code/LinkedList.java 阅读全文
摘要:
线段树(区间修改树) 线段树定义:给定一个数组,使其实现以下在区间内的方法,且方法的时间复杂度都为O(logN) 线段树的创建:将长度为N的数组按二分法分下来,建立一颗二分树,将对应的二分区间存在一个新建的数组中,新建数组长度为4N,且0位置废弃 认识对数器 1,你想要测的方法a 2,实现复杂度不好 阅读全文
摘要:
数字 7. 整数反转 难度简单3288收藏分享切换为英文接收动态反馈 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示 阅读全文
摘要:
ACM模式 一、Java之ACM注意点 类名称必须采用public class Main方式命名 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需 阅读全文