LeetCode
yyyybupt
这个作者很懒,什么都没留下…
展开
-
Leetcode--78. Subsets
Given a set ofdistinctintegers,nums, return all possible subsets (the power set) Note:The solution set must not contain duplicate subsets Example: Input: nums = [1,2,3] Output: [ [3], [1],...原创 2019-11-07 20:18:42 · 166 阅读 · 0 评论 -
leetcode+链表+删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 --head =[4,5,1,9],它可以表示为: 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: ...原创 2019-08-03 12:08:35 · 96 阅读 · 0 评论 -
leetcode+链表+删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n保证是有效的。 思路,利用两个指针进行操作,两个指针都初始化为头指针,将一个指针后移n位 若其后为空,说明链表长度恰好为n,删...原创 2019-08-03 21:13:33 · 82 阅读 · 0 评论 -
leetcode+字符串+最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例1: 输入: ["flower","flow","flight"] 输出: "fl" 示例2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母a-z。 Leetcode中有一个网页说的很详细,介绍了水平...原创 2019-07-23 09:07:15 · 134 阅读 · 0 评论 -
leetcode+链表+反转链表
反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 拿到题目第一反应是从头节点遍历到尾节点,新建一个链表进行存储并返回。但该方法时间复杂度O(n^2),空间复杂度O(n) 方法一:迭代 在遍...原创 2019-08-05 11:23:50 · 182 阅读 · 0 评论 -
leetcode+链表+合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 可以递归调用 函数代码如下: /** * Definition for singly-linked list. * public class ...原创 2019-08-29 17:15:22 · 73 阅读 · 0 评论 -
leetcode+链表+回文链表
请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 1. 边界情况: head==null // 空链表,回文,返回true head.next==null // 只有一个节点的列表,回文,返回...原创 2019-09-01 13:59:40 · 89 阅读 · 0 评论 -
leetcode+链表+环形链表
给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例2: 输入:head = [1,2], pos = 0 输出:true ...原创 2019-09-04 17:32:55 · 74 阅读 · 0 评论 -
leetcode+二叉树+二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度3 。 TreeNode的代码链接 代码实现链接 方法一:递归深度优先遍历 时间复杂...原创 2019-09-08 18:21:11 · 108 阅读 · 0 评论 -
leetcode+二叉树+验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例1: 输入: 2 / \ 1 3 输出: true 示例2: 输入: 5 / \ 1 4 / \ 3 6 输出:...原创 2019-09-12 20:03:08 · 107 阅读 · 0 评论 -
leetcode+二叉树+对称二叉树
给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树[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 方法一:递归 思路:如果一个树的左子树与右子树镜像对...原创 2019-09-13 16:43:58 · 114 阅读 · 0 评论 -
leetcode+二叉树+二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 方法一:递归 思路: 比较访问节点所在层次level和当前最高层次len...原创 2019-09-12 23:47:50 · 83 阅读 · 0 评论 -
leetcode+二叉树+将有序数组转换为二叉搜索树
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10...原创 2019-09-15 13:57:17 · 475 阅读 · 0 评论 -
leetcode+排序和搜索+ 合并两个有序数组
给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。 说明: 初始化nums1 和 nums2 的元素数量分别为m 和 n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = ...原创 2019-09-27 23:04:17 · 144 阅读 · 0 评论 -
常见查找和排序算法及java实现
我创建了一个Search包,在packageSearch内实现的算法,可以根据创建的包进行修改或者不加。 顺序查找 二分查找、插值查找、斐波那契 分块查找 二叉树查找 哈希查找 我创建了一个sort类,对多种排序算法的实现进行了总结归纳 ...原创 2019-10-02 16:11:55 · 315 阅读 · 0 评论 -
[LeetCode] 字符串+报数
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1被读作"one 1"("一个一") , 即11。 11 被读作"two 1s"("两个一"), 即21。 21 被读作"one 2", "one 1"("一个二","一个一...原创 2019-07-22 09:15:59 · 90 阅读 · 0 评论 -
[LeetCode] 字符串+实现strStr()
实现strStr()函数。 给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", needl...原创 2019-07-19 10:02:47 · 131 阅读 · 0 评论 -
Leetcode1.两数之和
Leetcode1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回...原创 2019-02-19 20:58:23 · 128 阅读 · 0 评论 -
[Leetcode] contains Duplicate 存在重复
给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例3: 输入: [1,1,1,3,3,4,3,2,4,2] 输出: true import java.util...原创 2019-04-03 21:03:37 · 108 阅读 · 0 评论 -
[Leetcode] 数组-只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例2: 输入: [4,1,2,1,2] 输出: 4 顺序扫描法:时间复杂度是O(n^2) 哈希表的方法:空间复杂度不是O(1) 应该怎么做才能即满...原创 2019-04-03 21:56:35 · 93 阅读 · 0 评论 -
[LeetCode] Rotate Array 旋转数组
给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例2: 输入: [-1,-100,3,9...原创 2019-04-03 21:04:07 · 65 阅读 · 0 评论 -
[Leetcode]数组+两个数组的交集 II
两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑...原创 2019-05-30 08:58:32 · 92 阅读 · 0 评论 -
[LeetCode]数组+加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321...原创 2019-05-30 10:19:45 · 227 阅读 · 0 评论 -
[LeetCode]数组+移动零
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 /* * 计数位:当前位置前0的个数n * 数组依次向前n位 * 余下补0 */ class Solution { /* * 使用两个...原创 2019-05-30 14:11:34 · 136 阅读 · 0 评论 -
[Leetcode]数组+有效的数独
判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用'.'表示。 示例1: 输入: [ ["5","3",".",".","...原创 2019-05-31 16:30:07 · 117 阅读 · 0 评论 -
[LeetCode] 数组+旋转图像
给定一个n×n的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3...原创 2019-06-14 15:41:55 · 109 阅读 · 0 评论 -
[LeetCode]字符串+反转字符串
反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是ASCII码表中的可打印字符。 示例 1: 输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"]...原创 2019-06-17 11:44:31 · 74 阅读 · 0 评论 -
[LeetCode] 字符串+ 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 1.我们分别用字符...原创 2019-06-17 15:35:27 · 94 阅读 · 0 评论 -
[LeetCode] 字符串+验证回文字符串
验证回文字符串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false import java.util.Set; import j...原创 2019-07-08 10:10:51 · 108 阅读 · 0 评论 -
[LeetCode] 字符串+字符串转换整数 (atoi)
字符串转换整数 (atoi) 请你来实现一个atoi函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也...原创 2019-07-08 15:09:05 · 75 阅读 · 0 评论 -
[LeetCode] 字符串+ 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事项:您可以假定该字符串只包含小写字母。 import java.util.Set; import java.util.HashSet; import java.util.Linked...原创 2019-07-03 16:58:28 · 125 阅读 · 0 评论 -
[LeetCode] 字符串+有效的字母异位词
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。 示例1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对...原创 2019-07-03 21:51:01 · 92 阅读 · 0 评论 -
leetCode26_removeDuplicates
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例2:...原创 2019-04-03 21:03:15 · 195 阅读 · 0 评论