随笔分类 -  LeetCode

栈的倒置(递归法)
摘要:将栈中的元素倒置,一种最简单的办法是利用数组存储栈弹出的元素,而后再压入栈中,空间复杂度O(N),时间复杂度O(2N)。 另一种方法是利用递归将栈中的元素倒置。 假设原栈中的元素为 5(5在栈顶) 4 3 2 1 那么倒置后栈中的元素应为 1 2 3 4 5 如果已经将1,2倒置了,即栈中的元素为 阅读全文

posted @ 2018-09-20 11:42 Deltadeblog 阅读(2137) 评论(0) 推荐(0)

矩阵中的路径(回溯法)
摘要:问题描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这 阅读全文

posted @ 2018-09-06 10:36 Deltadeblog 阅读(336) 评论(0) 推荐(0)

八皇后问题(回溯法求解)
摘要:问题描述 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线(包括反斜线)上,问有多少种摆法。 解题思路 八皇后问题,是回溯算法的典型案例,可以使用回溯法解决该题。 第一个皇后先放第一行第一列,然后第二个皇后放在与第一个皇后不冲突的列,继续第三个皇 阅读全文

posted @ 2018-09-06 09:50 Deltadeblog 阅读(427) 评论(0) 推荐(0)

数组中只出现一次的数字(java实现)
摘要:问题描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。 解题思路 如果数组中只有一个数字出现奇数次,则将数组中所有的数字做异或可得该数字。 数组中有两个数字出现奇数次,设这两个数字分别为a、b,则将数组中所有的数字做异或得到的是a与 b异或的结果,设 阅读全文

posted @ 2018-08-29 10:13 Deltadeblog 阅读(665) 评论(0) 推荐(0)

二叉搜索树转有序双向链表
摘要:题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 解题方法: 由于二叉搜索树的中序遍历,按照由小到大的顺序依次遍历树中的每个结点,所以可以利用中序遍历解决此题。 使用指针last指向上一次遍历的结点,将last指向的结点与 阅读全文

posted @ 2018-08-14 17:13 Deltadeblog 阅读(402) 评论(0) 推荐(0)

无重复字符的最长子串
摘要:问题描述: 给定一个字符串,找出不含有重复字符的最长子串的长度。 示例: 给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。 给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。 给定 "pwwkew" ,最长子串是 "wke" ,长度是3。 解题思路: 阅读全文

posted @ 2018-08-03 21:11 Deltadeblog 阅读(112) 评论(0) 推荐(0)

逆波兰表达式求值
摘要:问题描述: 根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 示例 2: 解题思路: 阅读全文

posted @ 2018-07-21 21:11 Deltadeblog 阅读(196) 评论(0) 推荐(0)

对链表进行插入排序
摘要:对链表元素插入排序 示例 1: 示例 2: 解题思路: 对于待排序的元素,在前部分有序链表中找到合适的位置插入即可。 如 对结点2插入排序,只需将其插入到节点1与节点3之间即可。 从起点开始遍历查找第一个大于节点2的节点,将节点2插入该节点的前面。 定义两个指针p,q, q指向待排序节点的前一个节点 阅读全文

posted @ 2018-07-21 20:40 Deltadeblog 阅读(164) 评论(0) 推荐(0)

有序链表转换二叉搜索树
摘要:问题描述: 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 解题思路: 将链表先转为数组,之后方法与将有序数组转换为二叉搜索树相同。 实现代码: 方法2: 直接使用链表生成二 阅读全文

posted @ 2018-07-14 19:14 Deltadeblog 阅读(1429) 评论(0) 推荐(0)

将有序数组转换为二叉搜索树
摘要:问题描述: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 解题思路: 用数组最中间的的值将数组分为三部分:左半部分、中间值、右半部分; 用中间值构造节点,数组左半部分构造节点的左子树 阅读全文

posted @ 2018-07-14 19:10 Deltadeblog 阅读(1333) 评论(0) 推荐(0)

中序与后序遍历序列构造二叉树
摘要:问题描述: 根据一棵树的中序遍历与后序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 返回如下的二叉树: 解题思路: 中序遍历,先遍历左子树,然后遍历根结点,最后遍历右子树。 因此中序遍历序列被根节点分为两部分:根结点之前的部分为左子树结点中序序列,根结点之后的为右子树结点中序序 阅读全文

posted @ 2018-07-12 19:40 Deltadeblog 阅读(713) 评论(0) 推荐(0)

前序与中序遍历序列构造二叉树
摘要:问题描述: 根据一棵树的前序遍历与中序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 返回如下的二叉树: 解题思路: 二叉树的先序遍历先访问根结点,其次遍历根节点的左子树,然后遍历根节点的右子树。 中序遍历,先遍历左子树,然后遍历根结点,最后遍历右子树。 因此中序遍历序列被根节点 阅读全文

posted @ 2018-07-11 20:08 Deltadeblog 阅读(5178) 评论(0) 推荐(1)

二叉树的锯齿形层次遍历
摘要:问题描述: 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如:给定二叉树 [3,9,20,null,null,15,7], 返回锯齿形层次遍历如下: 解题思路: 解决方法与二叉树的层次遍历基本一致,只是在向节点node对应 阅读全文

posted @ 2018-07-10 19:52 Deltadeblog 阅读(396) 评论(0) 推荐(0)

二叉树的层次遍历
摘要:问题描述: 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 解题思路: 定义变量list,List<List<Integer>> list = new LinkedList< 阅读全文

posted @ 2018-07-10 19:43 Deltadeblog 阅读(2193) 评论(0) 推荐(0)

判断对称二叉树
摘要:给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 解题思路: 若二叉树是镜像对称的,处于同一层对称的两个节点node1与node2, node1的值与node2的值必相等, 阅读全文

posted @ 2018-07-09 21:07 Deltadeblog 阅读(249) 评论(0) 推荐(0)

判断是否为平衡二叉树
摘要:问题描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。示例 2: 给定二叉树 [1,2,2,3,3,nul 阅读全文

posted @ 2018-07-08 11:26 Deltadeblog 阅读(284) 评论(0) 推荐(0)

环形链表
摘要:问题一 给定一个链表,判断链表中是否有环。 解题思路: 可以设定两个指针p与q,初始都指向链表的起始点(head),p每次跳一步而q每次两步。 若链表中存在环,则p与q一定相遇。 代码如下: 问题二 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 解题思路: 设定两个 阅读全文

posted @ 2018-06-13 21:18 Deltadeblog 阅读(207) 评论(0) 推荐(0)

格雷编码
摘要:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印格雷码序列。格雷码序列必须以 0 开头。 例如,给定 n = 2,返回 [0,1,3,2]。其格雷编码是: 解题思路: 二进制码转换成二进制格雷码,其方法是二进制码的最高位不变,其 阅读全文

posted @ 2018-06-12 20:11 Deltadeblog 阅读(2309) 评论(0) 推荐(0)

不同的二叉搜索树
摘要:给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。 示例: 解题思路: 该题求解由1-n构成的所有二叉搜索树,若以 i(1<=i<=n)为根节点,i的左子树的节点应当小于i,右子树的节点大于i。 则(1, i-1)构成的所有二叉搜索树,节点i,(i+1, n)构成的所有二叉搜索 阅读全文

posted @ 2018-06-06 20:42 Deltadeblog 阅读(154) 评论(0) 推荐(0)

报数
摘要:报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211 阅读全文

posted @ 2018-06-05 20:04 Deltadeblog 阅读(270) 评论(0) 推荐(0)

导航