LeetCode
文章平均质量分 73
℃记忆荏苒成泪
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题-11
数组-136. 只出现一次的数字题目描述题目样例Java方法:位运算算法思路代码复杂度题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。题目样例示例1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4Java方法:位运算算法思路如果不考虑时间复杂度和空间复杂度的限制,这道题有很多种解法,可能的解法有如下几种。1.使用集合存储数字。遍历数组中的每个数字,如果集合中没有该数字,则将该原创 2022-02-01 14:13:51 · 229 阅读 · 0 评论 -
LeetCode刷题-10
数组-121. 买卖股票的最佳时机题目描述题目样例Java方法:暴力法代码复杂度Java方法:一次遍历算法思路代码复杂度题目描述给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。题目样例示例1:输入:[7,1,5,3,6,4]输出:5解释:在第原创 2022-01-31 13:30:00 · 229 阅读 · 0 评论 -
LeetCode刷题-9
数组-119. 杨辉三角 II题目描述题目样例Java方法:线性递推思路及算法代码复杂度题目描述给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。题目样例示例1:输入: rowIndex = 3输出: [1,3,3,1]示例2:输入: rowIndex = 0输出: [1]示例3:输入: rowIndex = 1输出: [1,1]提示:0 <= rowIndex &l原创 2022-01-30 15:57:27 · 474 阅读 · 0 评论 -
LeetCode刷题-8
数组-118. 杨辉三角题目描述题目样例Java方法:数学思路及算法代码复杂度题目描述给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。题目样例示例1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例2:输入: numRows = 1输出: [[1]]提示:1 <= numRows <= 30Jav原创 2022-01-29 16:16:47 · 215 阅读 · 0 评论 -
LeetCode刷题-7
数组-108. 将有序数组转换为二叉搜索树题目描述题目样例前言Java方法:中序遍历,总是选择中间位置左边的数字作为根节点思路及算法代码复杂度Java方法:中序遍历,总是选择中间位置右边的数字作为根节点思路及算法代码复杂度Java方法:中序遍历,选择任意一个中间位置数字作为根节点思路及算法代码复杂度题目描述给你一个整数数组 nums ,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足每个节点的左右两个子树的高度差的绝对值不超过 1的二叉树。题目样例示例1:原创 2022-01-28 13:32:03 · 380 阅读 · 0 评论 -
LeetCode刷题-6
数组-88. 合并两个有序数组题目描述题目样例Java方法:直接合并后排序思路及算法代码执行结果复杂度Java方法:双指针思路及算法代码执行结果复杂度Java方法:逆向双指针思路及算法代码执行结果复杂度题目描述给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你合并 nums2 到 nums1 中,使合并后的数组同样按非递减顺序排列。题目样例示例1:输入:nums1 = [1,2,3,0,0,0],原创 2022-01-20 09:15:54 · 975 阅读 · 1 评论 -
LeetCode刷题-5
数组-66. 加一题目描述题目样例Java方法:找出最长的后缀 9思路及算法代码执行结果复杂度题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。题目样例示例1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示原创 2021-11-11 20:54:21 · 3739 阅读 · 0 评论 -
LeetCode刷题-4
数组-35. 搜索插入位置题目描述题目样例Java方法:二分查找思路及算法代码执行结果复杂度题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。题目样例示例1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例3:输入: nums =原创 2021-11-09 19:32:58 · 548 阅读 · 0 评论 -
LeetCode刷题-3
数组-27. 移除元素题目描述题目样例Java方法:双指针思路及算法代码执行结果复杂度Java方法:双指针优化思路及算法代码执行结果复杂度题目描述给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。题目样例示例1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2原创 2021-11-08 19:54:45 · 190 阅读 · 0 评论 -
LeetCode刷题-2
数组-26.删除有序数组中的重复项题目描述题目样例Java方法:双指针思路及算法代码执行结果复杂度题目描述给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。题目样例示例1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组原创 2021-11-02 20:36:19 · 66 阅读 · 0 评论 -
LeetCode刷题-1
数组-1.两数之和题目描述题目样例Java方法:暴力枚举思路及算法代码执行结果复杂度Java方法:哈希表思路及算法代码执行结果复杂度题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。题目样例示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例2:输入:nums原创 2021-10-31 11:08:51 · 299 阅读 · 0 评论