
LeetCode算法
学习算法
叫我蘑菇先生
有课程相关需求可以私信了解
展开
-
【Leetcode-找到所有数组中消失的数字】利用标记出现数组中出现过的数字解决数组中消失的数字问题
输入:nums = [4,3,2,7,8,2,3,1]中的数字,并以数组的形式返回结果。输入:nums = [1,1]原创 2025-01-10 17:17:16 · 244 阅读 · 0 评论 -
【Leetcode-移动零】利用将非零元素移动至数组前解决移动零问题(剪枝优化)
请注意 ,必须在不复制数组的情况下原地对数组进行操作。移动到数组的末尾,同时保持非零元素的相对顺序。输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]输入: nums = [0],编写一个函数将所有。原创 2025-01-10 16:52:55 · 630 阅读 · 0 评论 -
【Leetcode-合并两个有序数组】利用双指针解决合并两个有序数组问题
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。输入:nums1 = [0], m = 0, nums2 = [1], n = 1。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并 [1,2,3] 和 [2,5,6]。解释:需要合并的数组是 [] 和 [1]。输出:[1,2,2,3,5,6]原创 2025-01-10 16:18:24 · 313 阅读 · 0 评论 -
【Leetcode-两数之和】利用双指针、快排思路解决两数之和问题
解释:因为 nums[0] + nums[1] ==> 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。,请你在该数组中找出 和为目标值。整数,并返回它们的数组下标。你可以按任意顺序返回答案。原创 2025-01-09 22:52:17 · 386 阅读 · 0 评论 -
双指针——(数组、指针问题)
以LeetCode简单算法题为例:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。双指针解法(时间复杂度:O(n),空间复杂度:O(n))class Solution {public: vector<int> sortedSquares(vector<int>& A) { int k = A.size() - 1; vector<int> res原创 2022-01-07 16:23:43 · 863 阅读 · 0 评论 -
二分查找——妙用STL(lower_bound和upper_bound)
二分查找(在这就不过多赘叙,大伙可以自行了解) 本文主要讲lowe_bound和upper_bound这两个底层皆基于二分查找,当然STL标准库中还有 equal_range() 和 binary_search() 也是基于二分查找实现的。读者可自行了解!C++ lower_bound()函数 lower_bound() 函数用于在指定区域原创 2022-01-06 17:11:55 · 5620 阅读 · 1 评论