Leetcode相关
文章平均质量分 63
acwing+Leetcode学习过程
ShangZHQ
这个作者很懒,什么都没留下…
展开
-
leetcode—数组—下一个排列
下一个排列题目类型: 数组题目来源: leetcode传送门实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例1:输入:nums = [1,2,3]输出:[1,3,2]示例2:输入:nums = [3,2,1]输出:[1,2,3]示例3:输入:nums = [1,1,5]输出:[1,5,原创 2021-10-01 21:05:12 · 84 阅读 · 0 评论 -
leetcode—数组—删除有序数组中的重复项
删除有序数组中的重复项题目类型: 数组题目来源: leetcode传送门给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,原创 2021-10-01 13:24:14 · 90 阅读 · 0 评论 -
leetcode—数组—四数之和
四数之和题目类型:数组题目来源: leetcode传送门给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] :0 <= a, b, c, d < na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。示例1:输入:nums = [原创 2021-09-30 11:46:09 · 136 阅读 · 0 评论 -
leetcode—数组—在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置题目类型: 数组题目来源: leetcode传送门给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例2:输入:nums = [5,7,7,原创 2021-10-02 19:59:24 · 127 阅读 · 0 评论 -
leetcode—数组—三数之和
三数之和题目类型:数组题目来源: leetcode传送门给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。**注意:**答案中不可以包含重复的三元组。示例1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例2:···输入:nums = []输出:[]···示例3:···输入:nums = [0]输出:[]原创 2021-09-29 21:06:26 · 272 阅读 · 0 评论 -
树的非递归先序、中序、后序遍历
树的非递归三种遍历此文章用来做记忆的,所以直接给代码了:先序遍历vector<int> preorderTraversal(TreeNode* root) { stack<TreeNode*> s; vector<int> ans(0); if(root == nullptr) return ans; s.push(root); while(!s.empty()) { TreeNode*原创 2021-10-07 23:29:24 · 95 阅读 · 0 评论 -
leetcode—数组—最接近的三数之和
最接近的三数之和题目类型:数组题目来源: leetcode传送门给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum-closest著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。示例:输入:nums = [-1,2,1,-4],原创 2021-09-29 21:24:00 · 100 阅读 · 0 评论 -
leetcode—数组—搜索旋转排序数组
搜索旋转排序数组题目类型: 数组题目来源: leetcode传送门整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6原创 2021-10-02 16:16:57 · 73 阅读 · 0 评论 -
leetcode—数组—搜索插入位置
搜索插入位置题目类型: 数组题目来源: leetcode传送门给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例3:输入: nums = [1,3,5,6], target = 7输出:原创 2021-10-02 20:23:10 · 154 阅读 · 0 评论 -
leetcode—数组—移除元素
移除元素题目类型: 数组题目来源: leetcode传送门给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums原创 2021-10-01 17:32:50 · 110 阅读 · 0 评论 -
leetcode—二叉搜索树的后续遍历
二叉搜索树的后续遍历题目来源: leetcode传送门输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3示例1:输入: [1,6,3,2,5]输出: false示例2:输入: [1,3,2,6,5]输出: true提示:数组长度 <= 1000方法一:暴力求树的存在性刚原创 2021-10-09 17:13:44 · 233 阅读 · 1 评论