- 博客(11)
- 收藏
- 关注
原创 【LeetCode】204. 计数质数(JAVA)(埃拉托斯特尼筛法)
练习题:计数质数 题目要求 统计所有小于非负整数n的质数的数量。 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 解: 埃拉托斯特尼筛法(希腊语:κόσκινον Ἐρατοσθένους,英语:sieve of Eratosthenes ),简称埃氏筛,也称素数筛。这是一种简单且历史悠久的筛法,用来找出一定范围内所有的素数。所使用的原理是从2开始,将每个素数的各个倍数,标记成合数。一个素数的各个倍数,是一个差为此素...
2020-06-05 21:35:38
325
原创 【LeetCode】234. 回文链表(JAVA)(Integer的比较)
练习题:回文链表 题目要求 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 解: 此题的两种解法: 一: 由于题目得提高要求是利用O(1)的空间复杂度,所以利用递归的方法可以实现。参考官方解法。我们需要利用一个链表节点全局变量front和一个辅助函数完成。front从前面开始遍历链表,辅助函数的输入参数是从后面开始遍历节点。当前节点不为空...
2020-06-01 23:27:24
190
原创 【LeetCode】101. 对称二叉树(JAVA)
练习题:对称二叉树 题目要求 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 解: 本题用递归解法的话,代码相对更好编写一些。 问题在于如何递归: 首先可以知道,...
2020-05-29 21:19:01
222
原创 【LeetCode】160. 相交链表(JAVA)
练习题:相交链表 题目要求 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Reference of the node with value = 8 输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为
2020-05-24 21:29:07
263
原创 【LeetCode】38. 外观数列(JAVA)//每一项都是对前一项的描述
练习题:外观数列 题目要求 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1被读作"one 1"("一个一") , 即11。 11 被读作"two 1s"...
2020-05-22 23:10:33
365
原创 【LeetCode】242. 有效的字母异位词(JAVA)
练习题:有效的字母异位词 题目要求 给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。 示例1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母。 解: 字母异位词: 由相同字母组成的不同单词。两个单词每个字母出现的次数都相同。 我是这样解决的...
2020-05-21 23:21:47
202
原创 【LeetCode】169. 多数元素/众数(JAVA)摩尔投票
练习题:多数元素/众数 题目要求 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 解: 摩尔投票算法: 摩尔投票算法是一种使用线性时间和常数空间查找大部分元素序列的算法。它以1981年出版的Robert ...
2020-05-20 19:15:58
195
原创 【LeetCode】118. 杨辉三角(JAVA)
练习题:杨辉三角 题目要求 给定一个非负整数numRows,生成杨辉三角的前numRows行。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 解: 我们用List<List<Integer>>存储杨辉三角。 创建一个空的链表...
2020-05-18 22:06:51
272
原创 【LeetCode】136.137.260 只出现一次的数字(JAVA)
练习题:只出现一次的数字①、②、③ 题目①要求: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你的算法应该具有线性时间复杂度。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解: 如果此题没有线性时间复杂度,解法较多。 但是要求是算法应该具有线性时间复杂度,就有一个有趣的解法:位运算。 根据位运算的性质可以得到: ...
2020-05-17 23:45:48
135
原创 【LeetCode】108.将有序数组转换为二叉搜索树 (JAVA)
练习题:将有序数组转换为二叉搜索树 题目要求: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 解: 二叉搜索树:空树。或:左子树上...
2020-05-13 23:06:30
209
原创 【LeetCode】104.二叉树的最大深度 (JAVA)
练习题:二叉树的最大深度 题目要求: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度3 。 解:已知当前节...
2020-05-13 22:38:03
175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人