![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
ۣۖิSeamus
这个作者很懒,什么都没留下…
展开
-
LeetCode 2580.统计将重叠区间合并成组的方案数
区间 [1,3] ,[2,5] 和 [4,8] 在第 1 个组中,[10,20] 在第 2 个组中。区间 [1,3] ,[2,5] 和 [4,8] 在第 2 个组中,[10,20] 在第 1 个组中。输入:ranges = [[1,3],[10,20],[2,5],[4,8]]同理,区间 [2,5] 和 [4,8] 也有交集,所以它们也必须在同一个组中。区间 [1,3] 和 [2,5] 有交集,所以它们必须在同一个组中。输入:ranges = [[6,10],[5,15]]将两个区间都放在第 2 个组中。原创 2024-03-27 20:51:39 · 376 阅读 · 0 评论 -
LeetCode342. 4的幂
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true;否则,返回 false。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x。原创 2024-03-26 20:53:30 · 267 阅读 · 0 评论 -
leetCode209.长度最小的子数组
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。输入:target = 7, nums = [2,3,1,2,4,3]给定一个含有 n 个正整数的数组和一个正整数 target。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。原创 2024-03-24 20:05:07 · 181 阅读 · 0 评论 -
18.四数之和
给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且的四元组bc和d你可以按返回答案。原创 2023-07-15 10:37:02 · 355 阅读 · 0 评论 -
979.在二叉树中分配硬币
给定一个有N个结点的二叉树的根结点root,树中的每个结点上都对应有node.val枚硬币,并且总共有N枚硬币。在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。返回使每个结点上只有一枚硬币所需的移动次数。[3,0,3]2从树的根节点开始,我们将一枚硬币移到它的左子节点上,一枚硬币移到它的右子节点上。[0,3,0]3从根结点的左子结点开始,我们将两枚硬币移到根结点上 [移动两次]。原创 2023-07-14 10:41:27 · 121 阅读 · 0 评论 -
931.下降路径最小和
给你一个n x n的整数数组matrix,请你找出并返回通过matrix的的。可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置(row, col)的下一个元素应当是或者。13如图所示,为和最小的两条下降路径-59如图所示,为和最小的下降路径。原创 2023-07-13 10:57:18 · 120 阅读 · 0 评论 -
1911.最大子序列交替和
一个下标从开始的数组的定义为下标处元素之减去下标处元素之。[4,2,5,3]给你一个数组nums,请你返回nums中任意子序列的(子序列的下标从 0 开始编号)。一个数组的是从原数组中删除一些元素后(也可能一个也不删除)剩余元素不改变顺序组成的数组。比方说,[2,7,4]是的一个子序列(加粗元素),但是[2,4,2]不是。7最优子序列为 [4,2,5] ,交替和为 (4 + 5) - 2 = 7。8最优子序列为 [8] ,交替和为 8。10。原创 2023-07-11 10:59:53 · 167 阅读 · 0 评论 -
最接近的三数之和
首先将数组按照升序排序,然后使用双指针,一个指向数组的起点位置,一个指向数组的末尾位置,同时使用一个变量记录当前最接近目标值的三个数的和。然后在指针移动的过程中,不断更新最接近目标值的三个数的和,直到双指针重合为止。与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。中选出三个整数,使它们的和与。假定每组输入只存在恰好一个解。原创 2023-07-10 10:51:48 · 196 阅读 · 0 评论 -
15.三数之和
先对数组进行排序,然后枚举其中的一个数nums[i],然后问题就变成了再剩下的数中找到两个数的和等于-nums[i]。为了避免重复元素,需要在枚举的时候跳过所有重复元素。**输入:**nums = [-1,0,1,2,-1,-4]**输入:**nums = [0,1,1]**输入:**nums = [0,0,0]唯一可能的三元组和不为 0。答案中不可以包含重复的三元组。唯一可能的三元组和为 0。,判断是否存在三元组。原创 2023-07-09 11:07:39 · 80 阅读 · 0 评论 -
LeetCode 232.用栈实现队列
请你仅使用两个栈实现先入先出队列。原创 2023-07-08 12:14:41 · 396 阅读 · 0 评论 -
LeetCode 202.快乐数
编写一个算法来判断一个数 n 是不是快乐数。定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true;不是,则返回 false。原创 2023-07-07 11:20:47 · 188 阅读 · 0 评论 -
0-1背包问题
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式:第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。0<N,V≤1000接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。0<vi,wi≤1000输出格式:输出一个整数,表示最大价值。输入样例:4 71 22 43原创 2022-05-22 18:18:34 · 271 阅读 · 0 评论 -
分治法求最大子数组和
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例2:输入:nums = [1]输出:1示例3:输入:nums = [5,4,-1,7,8]输出:23int maxSubArray(int* nums, int numsSize){原创 2022-04-19 16:24:09 · 273 阅读 · 0 评论 -
7-4棋盘覆盖
在一个2k∗2k(k为正整数,k<=10,length=2k)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格(其坐标为a,b,分别代表行坐标号和列坐标号),以及有四种L型骨牌(如下图)。求用若干块这种L型骨牌实现除该特殊点棋盘的全覆盖。(本题要求采用分治算法做)输入格式:输入三个数,分别是a,b,length.输出格式:输出整个棋盘。其中特殊方格填为0,然后铺棋盘的顺序为:先铺四个子棋盘交界的部分,然后递归的对每个子棋盘按照左上,右上,右下,左下的顺时针顺序铺满棋盘原创 2022-04-18 20:43:39 · 644 阅读 · 0 评论 -
归并排序算法
一、基本思想1、分而治之思想,将数组分成若干组,直到将每个数字分为一组。2、将若干个小数组进行合并,确保合并后的数组有序3、重复进行第二步直到合并为一个数组位置二、归并排序代码分析#include <iostream>using namespace std;void Merge(int *arry,int L,int m,int R);//将数组合并void Mergesort(int *arry,int L,int R);//归并排序int main(){ i原创 2022-04-10 19:21:33 · 958 阅读 · 0 评论 -
快速排序算法
一、基本思想1、选定一个中心轴(一般选取第一个数字作为中心轴),将要排序的数据分为两个部分2、将大于中心轴的数字放在中心轴的右边3、将小于中心轴的数字放在中心轴的左边4、分别对左右子序列重复前三步的操作,直至排序完成二、快速排序代码分析#include <iostream>using namespace std;void quicksort(int *arry,int L,int R);int main(){ int n; cin>>n;原创 2022-04-10 19:04:08 · 433 阅读 · 0 评论