随笔分类 - Alogrithm
算法与题
摘要:面试常考的点BFS和DFS的遍历。 给一棵二叉树,写出他的BFS遍历情况(应该就是按层遍历)以及DFS遍历情况。 BFS 用一个队列存储节点。Queue BFS实现代码如下: Bfs可参见leetcode:https://leetcode.com/submissions/detail/6171537
阅读全文
摘要:题目 题目1 : 最大集合 题目1 : 最大集合 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个1-N的排列A[1], A[2], ... A[N],定义集合S[K] = {A[K], A[A[K]], A[A[A[K]]] ... }。 显然对于任意的K=1
阅读全文
摘要:有N件物品和一个容量为M的背包。第i件物品的容量是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 输入第一行,N,M N件物品和总容量为M,后面N行输入容量和价值,求解背包总价值最大值。 DP主要考虑的是状态转移方程,记DP[i][j]为将第i件物品放入背包中后,背包的总价值,i
阅读全文
摘要:定义^ 自增 * 乘法 + 加法 栈长度16 超过 上溢出 返回-2 若栈中没有足够的整数供运算 则返回-1 否则返回栈顶
阅读全文
摘要:经典的二叉树重建问题。去哪儿的笔试题 根据前序和中序,分层打印二叉树 1.已知前序遍历和中序遍历 重建二叉树 方法一 递归 方法二:使用栈或者队列来做。 2.已知中序和后序,重建二叉树
阅读全文
摘要:描述 小Hi:小Ho你会下国际象棋么? 小Ho:应该算会吧,我知道每个棋子的移动方式,马走日象飞田什么的... 小Hi:象飞田那是中国象棋啦! 小Ho:哦,对。国际象棋好像是走斜线来着。 小Hi:不过马走日倒是对了。国际象棋中的马一般叫做骑士,关于它有个很有意思的问题。 小Ho:什么啊? 小Hi:骑
阅读全文
摘要:整数划分 --- 一个老生长谈的问题: 整数划分是一个经典的问题。请写一个程序,完成以下要求。 下面是我根据网上的资料, 写出自己的分析和实现过程. 分析: 本题使用动态规划(Dynamic Programming)方法解决 一 求将n划分为若干正整数之和的划分数 1. 若划分的多个整数可以相同 设
阅读全文
摘要:Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequence from beginWord to endWord,
阅读全文
摘要:数的划分,典型的DP问题。 题目要求:给定一个数n,要求输出这个数所有的划分的种数(不包括等分)。比如3=2+1,只有一种划分,1不能再分,2 不能分解成1+1,(就是说 数不能等分) 因此可以先考虑,将n分成K份的情况。那么所有的划分就可以是将n分成2,3,4,5,。。。n-1份之和,当然其中还需
阅读全文
摘要:leetcode 美团笔试也考到了就是要找二叉树两个节点的第一个共同的祖先。对于树,没有规定,不一定是一颗二叉查找树。 第一种情况:首先 如果这个树是一个二叉树的,并且是一颗二叉查找树的话 由于二叉查找树的左子树节点比父节点小,右子树节点比父节点大,则输入两个节点,只用从根节点开始比较,如果,如果当
阅读全文
摘要:给1-13中的任意四个数 允许重复,求用四则运算(+-*/)是否能够得到24 ,每个数只能用一次。 利用动态规划求解。从集合划分和合并的角度来计算。用二进制表示集合和子集的概念,a0 a1 a2 a3代表输入的4个数,记录int A[4]为输入的四个数的数组 a0 a1 a2 a3 --0001 代
阅读全文
摘要:将一个升序数组在中间截断成两部分,重新组合成数组,要在数组中找target 返回index,不在数组中返回-1 主要思想还是二分 只是分类讨论的情况比二分的多。
阅读全文
摘要:剑指offer上43题 n个骰子,朝上一面的点数之和为S,求S的所有可能的值的概率 有两种方法 1.递归 2.动态规划 f(n) = f(n-1)+f(n-2)+....+f(n-6); 贴代码: 第二种方法是动态规划,记录前一轮状态中的骰子的值 第二种方法时间上效率较高。只比第一种方法多费了o(n
阅读全文
摘要:最近做到二叉树的题目,准备对二叉树做一个归纳总结。首先写一下二叉树的几种遍历方法吧 1.二叉树的前序遍历:根左右 preorderTraversal 。也就是按照根-左-右的顺序,迭代来遍历一棵二叉树,用栈存储右子树,把根存储了之后,遍历左子树,然后左子树遍历完了,就从栈中弹出右子树的节点,依旧按照
阅读全文
摘要:题目如下:就是一个数组,切三刀,从这三个切口组成的四个切片的整数和是否能够四等分,如果可以,就返回true,不行就返回false。 主要的思路就是记着三个切点为m1,m2,m3(和是不包括m1 m2 和m3的),则先找m1,m2,头尾的和相等后,记为count,利用count以及m1,m3来查找m2
阅读全文

浙公网安备 33010602011771号