随笔分类 -  LeetCode

上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页
摘要:一、题目 1、审题 2、分析 给出一个二叉查找树,其中有两个元素的位置弄错了,写算法将其恢复。 二、解答 1、思路: 方法一、 通过中序遍历可以确定一棵二叉查找树由小到大的顺序。 所以在此错位的查找树中查找到的节点中有 1 个比后续节点值大,最后 1 个比前面相邻节点值小。交换这两个结点值即可。 阅读全文
posted @ 2018-09-27 10:56 skillking2 阅读(107) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出三个字符串,判断 s3 是否可以由 s1 与 s2中的字符交错形成。 二、解答 1、思路: 采用一个动态布尔型二维数组 matrix 记录匹配情况。matrix[0][0] 初值为 true。 ①、先初始化 matrix 第一行、第一列。 ②、matrix[i][j 阅读全文
posted @ 2018-09-26 22:39 skillking2 阅读(85) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出两个二叉树,判断这两个二叉树是否完全相同。 二、解答 1、思路: 方法一、 采用两个队列分别对两个二叉树进行层次遍历。 遍历时比较两个二叉树结点值是否相同。 方法二、 采用一个队列存放 q、p 两个二叉树节点,每次比较时取出两个连续的队头节点进行比较。 方法三、 利 阅读全文
posted @ 2018-09-26 21:58 skillking2 阅读(85) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 判断所给二叉树是否时一个二分查找树。(left < top < right) 二、解答 1、思路: 方法一、 采用中序遍历,将遍历的节点值放入一个 List 中,再判断 List 中的元素是否时升序的即可。 方法二、 采用中序遍历,直接在便利过程中进行判断是否符合二叉查 阅读全文
posted @ 2018-09-26 21:31 skillking2 阅读(89) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出数值 n, 输出由节点值为 1,2....n 所形成的所有二叉查找树。 二、解答 1、思路: 采用递归实现。 ①、分别假设父结点为 1,2...i...n ,则左孩子为 1,2,..i-1, 右孩子为 i+1,i+2...n。 ②、用列表 left 存储 左孩子的所 阅读全文
posted @ 2018-09-26 19:20 skillking2 阅读(82) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出整数 n ,求 n 个节点能组成多少个不同的二分查找数。 二、解答 1、思路: (引自: https://leetcode.com/problems/unique-binary-search-trees/discuss/31666/DP-Solution-in-6- 阅读全文
posted @ 2018-09-26 16:49 skillking2 阅读(87) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个二叉树,中序输出其各节点值。 二、解答 1、思路: 方法一、 采用递归 方法二、 采用一个栈记录节点,根节点先入栈 ①、访问栈顶节点(未出栈),若有左节点则左节点入栈,且将原栈顶节点 left 赋为空。 ②、若左节点为空,则站顶出栈,且右节点入栈。 保持了 左 阅读全文
posted @ 2018-09-26 15:33 skillking2 阅读(134) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给一个只含有数字的字符串,判断其拆分后满足正确 IP 地址格式的所有组合。 二、解答 1、思路: 每个 IP 地址的一项均为 0 ~ 255之间,用 1~3 位数值进行表示,故可以将字符串拆分成四项,且每一项长度为 1~3,再依次判断每项是否为 0 ~ 255 之间,满 阅读全文
posted @ 2018-09-26 14:38 skillking2 阅读(120) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整数链表,翻转从第 m 到 n 的所有节点(m <= n)。 二、解答 1、思路: 方法一、用到了 6 个指针变量 ①、新建一个伪头结点,指向 head,且一指针向前移动直到 index == m; ②、若 m <= index <= n ,则将之间的节点插入一 阅读全文
posted @ 2018-09-26 12:00 skillking2 阅读(104) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 每个字母对应一个数字编码,eg A -->1 B -->2 ... Z --> 26 给出一串数字,求可以解码成的共多少中字符可能。 二、解答 1、思路: 采用递推数组进行记录。 阅读全文
posted @ 2018-09-26 11:02 skillking2 阅读(123) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个可能有重复数值的整形数组,求其所有的子集合数组。 二、解答 1、思路: 方法一、 采用递归的方法将所有集合放在一个 List 中; 去重所用的公式: if(i > start && nums[i] == nums[i-1]) continue; 方法二、 将数组 阅读全文
posted @ 2018-09-26 10:52 skillking2 阅读(89) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个正整数 n ,表示二进制的位数,用 List 存储 n 位二进制表示的所有整数,且相邻的两个数均为只有一个二进制位不同。 二、解答 1、思路: 方法一、 ①、用一个 list 存储整数。初始化时 list 中加入 0; ②、循环 n 次,每次循环将 list 中 阅读全文
posted @ 2018-09-25 21:52 skillking2 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出有序整数数组 nums1、nums2,将 nums2 中元素放入 nums1 中,且使得nums1仍然有序,假使 nums1 空间足够大。 二、解答 1、思路: 方法一、 将 nums1 与 nums2 依次进行比较,将小的数放在 nums1 从下标为 0 开始的位 阅读全文
posted @ 2018-09-25 17:34 skillking2 阅读(130) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出两个字符串,以上述二叉树方法进行拆分、组合。判断两个字符串是否是同一个二叉树拆分、组合而成。 二、解答 1、思路: ①、判断两个字符串中所含字符是否全部相同。 ②、递归判断两个字符串是否满足旋转后相等。 阅读全文
posted @ 2018-09-25 16:40 skillking2 阅读(163) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整数链表,和一个目标数 x,将链表中节点值 < x 的节点放在值为 x 节点的左边,且保持链表原来的节点顺序。 二、解答 1、思路: 方法一、 新建两个伪头结点,head1、head2,遍历链表节点: ①、若 val < x,则在 head1 后添加该节点 ②、 阅读全文
posted @ 2018-09-25 11:44 skillking2 阅读(128) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个含有 ‘0‘、’1’ 字符的矩阵,求其中的 ‘1‘ 形成的子矩阵的最大面积。 二、解答 1、思路: 采用三个一维数组: left[cols]: 若该元素为 ‘1‘,则记录此元素以及之前行的形成矩阵的最大左边界。 right[cols]: 若该元素为 ‘1‘,则记 阅读全文
posted @ 2018-09-25 10:35 skillking2 阅读(132) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给一个正整数数组代表高度,且宽度为1,求该数组形成的矩形所能存储的最大容量。 二、解答 1、思路: 方法一: 列举出数组形成的矩形,即可找到最大容量。 即宽度为 1 、2、3......n 的矩形, 其中高度为连续的 i 个整数中最小的一个。 注意(使用 3 层循环,时 阅读全文
posted @ 2018-09-24 21:46 skillking2 阅读(113) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个有序的有重复数值的整形链表,删除重复值的节点,使得每个节点的值只出现一次。 二、解答 1、思路: 同 eg 82,只是保留重复节点数值的一个节点 阅读全文
posted @ 2018-09-24 19:08 skillking2 阅读(99) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个有序的整数链表,其中有重复的数字节点,将重复出现的数字节点全部删除,返回新的链表。 二、解答 1、思路: ①、新建一个伪头结点 fakeHead,next 指向 head,pre 指针指向 fakeHead, cur 指针指向 head; ②、如果 cur 的后 阅读全文
posted @ 2018-09-24 16:11 skillking2 阅读(110) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整数数组,数组本来为有序的且可能存在重复整数。 现在将数组后面未知个连续的元素移动到数组前面,形成新的数组。此时,判断 target 是否存在于该新数组中。 二、解答 1、思路: 方法一、 ①、由于数组分成了两部分有序的数字组合,先利用二分查找找到中间数字集合的 阅读全文
posted @ 2018-09-23 22:46 skillking2 阅读(108) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页