随笔分类 -  LeetCode

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
摘要:一、题目 1、审题 2、分析 给出一棵二分查找树的根节点。实现 next() 方法返回下一个最小的二叉树的节点值。 hasNext() 判断是否还有值。 二、解答 1、思路: 采用一个 Stack 存储二叉查找树的左斜子树节点值。 next() 方法返回栈顶节点值,并将其右孩子的左斜子树入栈即可。 阅读全文
posted @ 2018-10-16 20:53 skillking2 阅读(78) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 以上图对应关系,输入一个字符串,输出其对应的整数。 二、解答 1、思路: 上表中,1——26 对应 A——Z; 而,A——Z 下标对应 0——25; 所以每次 S 中字符 c 对应的整数为: c - ‘A' + 1;再依次拼接数值即可。 阅读全文
posted @ 2018-10-16 14:53 skillking2 阅读(100) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整形数组,其中一个元素出现的次数 大于 n / 2 次。输出此元素。 二、解答 1、思路: 采用一个变量 count 进行计数。遍历结束时 count 大于 0 或遍历时出现 count > N / 2 ,则返回对应的元素 阅读全文
posted @ 2018-10-16 14:41 skillking2 阅读(101) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个正整数,给出如上对应方式对应的字符串。 二、解答 1、思路: sheet 中,1 —— 26 对应 A——Z; 而, A——Z 对应的下标为 0——25; 所以 每次计算时 n--; 阅读全文
posted @ 2018-10-16 13:51 skillking2 阅读(115) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个升序的整形数组,当两个元素之和为 target ,输出这两个元素的下标。(只有一组符合的数) 二、解答 1、思路: 方法一、 采用两个指针,start 从前向后移动,end 从后向前移动;当 num[start] + num[end] = target 时,输出 阅读全文
posted @ 2018-10-15 22:12 skillking2 阅读(113) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整数分子,一个整数分母。求商。若商为无限循环有理数,用括号包裹循环的小数。 二、解答 1、思路: ①、先确定商的符号;可以采用 ^ 运算符; ②、计算商的整数部分; ③、计算商的小数部分;同时用一个 Map 记录当前小数数值以及插入的下标,用于判断是否是循环有理 阅读全文
posted @ 2018-10-15 21:45 skillking2 阅读(171) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出两个非空的且只包含数字、点号的版本号,比较版本号的大小。 二、解答 1、思路: 方法一、 ①、以 split 切割字符串成数组;按顺序对两个数组中字符串进行比较; ②、,短版本号的后边默认为 0,继续比较; 方法二、 ①、将每一个 “.” 分割成的数字字符串拼接成整 阅读全文
posted @ 2018-10-15 11:58 skillking2 阅读(182) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个无序的整形数组,求其有序时相邻元素的最大差值为多大。 二、解答 1、思路: 方法一、 桶排序。 ①、首先找出数组中最大元素、最小元素: max 、min; ②、去除 max、min 时数组剩下 N - 2 个元素,取 N - 1 个桶进行存放,则一个桶内存放元素 阅读全文
posted @ 2018-10-15 11:21 skillking2 阅读(259) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整形数组,输出比左右元素值大的数值的下标。若左边或右边没有元素,则视为左或右边 为负无穷大。 二、解答 1、思路: 方法一、 直接顺序遍历数组,判断是否比左右元素值大。 方法二、 所求元素即为一个顶点。 其实不用专门判断比左边元素大。直接用 if 判断即可 方法 阅读全文
posted @ 2018-10-13 20:00 skillking2 阅读(181) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出两个单向链表,如果两个链表用重叠部分,输出重叠节点的第一个节点,否则输出 null; 二、解答 1、思路: 方法一、 将两个链表按照尾部进行对齐,在开始遍历链表,查找是否存在重叠节点。 ①、计算两个链表长度; ②、将长的链表向后移动,使得两链表尾部对齐; ③、开始查 阅读全文
posted @ 2018-10-13 17:38 skillking2 阅读(154) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 设计一个 minStack,使其有 pop、push、top、getMin 功能,且 getMin 的检索时间为常数。 二、解答 1、思路: 采用一个 Stack 进行实现。 ①、采用变量 min 记录站中的最小值。 ②、若入栈元素 p >= min,则 P 入栈。否则 阅读全文
posted @ 2018-10-13 17:04 skillking2 阅读(95) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 一个可能有重复元素的整形数组绕一个未知元素翻转后,求新数组的最小元素。 二、解答 1、思路: 方法一、 同上一题; 只是需要考虑判断重复的元素是否被翻转到了尾部,此时 end-- 即可。 方法二、 直接采用线性方法进行查找; 阅读全文
posted @ 2018-10-13 16:11 skillking2 阅读(89) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 一个有序整数数组翻转成两段增序数组后,求出其中的最小的元素。 二、解答 1、思路: 方法一、 采用二分法求出最小元素。 ①、若 nums[start] < nums[end] ,则数组已经有序;返回 nums[start]; ②、若 nums[start] < nums 阅读全文
posted @ 2018-10-13 15:51 skillking2 阅读(136) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 求一个整数数组中的连续子串的最大乘积。 二、解答 1、思路: ①、遍历数组,采用三个变量进行记录。 maxCurProduct:包含当前下标的数组元素时的最大乘积。 minCurProduct: 包含当前下标的数组元素时的最小乘积。 product: 当前为止的最大乘积 阅读全文
posted @ 2018-10-13 12:00 skillking2 阅读(112) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一句话,将其中的单词进行翻转,且每个单词间隔一个空格。 二、解答 1、思路: ①、通过正则表达式将句子根据连续的空格(一个或多个)进行切割,获得一个单词数组 arr; ②、 将 arr 转成 List, 在通过 Collections 进行翻转。 ③、通过 Stri 阅读全文
posted @ 2018-10-13 11:25 skillking2 阅读(103) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出逆波兰表达式(即运算数写前面,操作符写后边),求出运算的正确结果。 二、解答 1、思路: 采用一个 Stack 存储操作数,当碰到运算符时,出栈栈顶的两个元素进行运算即可。最终遍历完数组后, Stack 中存在的唯一一个数即为结果。 阅读全文
posted @ 2018-10-12 21:00 skillking2 阅读(139) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 将一个链表节点进行排序,时间复杂度为 NLogN, 且使用常数的空间复杂度。 二、解答 1、思路: 采用归并排序的思想。 ①、将链表进行切割 ②、将切割的链表进行排序 ③、合并切割的链表。 阅读全文
posted @ 2018-10-12 18:11 skillking2 阅读(179) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个链表,采用插入排序的方式将节点进行排序。 二、解答 1、思路: 方法一、 ①、将第一个节点结点作为新的有序链表的开始。指针 node 指向 head, next 指向 head 的下一个元素。 ②、将 next 值依次与 node 所指链表节点进行比较,并插入合 阅读全文
posted @ 2018-10-12 17:41 skillking2 阅读(121) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、给出一棵二叉树,采用迭代输出其后序遍历序列值。 二、解答 1、思路: 方法一、 采用一个 Stack 记录节点,一个指针 pre 指示 right 节点是否访问过。 方法二、 ①、伪前序遍历比较好写: 根 > 右 > 左; ②、后续遍历 : 左 > 右 > 根 , 即为 ① 阅读全文
posted @ 2018-10-12 16:44 skillking2 阅读(148) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一棵二叉树,采用迭代输出先序遍历的节点值。 二、解答 1、思路: 方法一、 采用 Stack + 迭代的方式。 优化: Stack 只用于存储 Right 节点。 方法二、 采用 InOrder 方式遍历,但输出为 InOrder 顺序。 方法三、 采用 Morri 阅读全文
posted @ 2018-10-12 11:15 skillking2 阅读(114) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页