![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
文章平均质量分 72
bdy_y9
step by step
展开
-
【Leetcode】层次遍历||树深度||队列
是指从根节点到最远叶子节点的最长路径上的节点数。原创 2023-08-09 15:06:19 · 414 阅读 · 0 评论 -
【Leetcode】基础题||合并有序表(击败100%)
新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。原创 2023-08-09 14:49:17 · 283 阅读 · 0 评论 -
【Leetcode】链表中两数之和(模拟加法器)(击败100%)
2.链表结束后另一个链表还有数(且此时还在进位,不能直接拼接链表)你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。3.最后去除多余的0。原创 2023-08-09 14:47:24 · 270 阅读 · 0 评论 -
【Leetcode】反转链表||基础题||击败100%(头插法)
反转链表,基础题了,要很熟练的境界——,请你反转链表,并返回反转后的链表。原创 2023-08-07 13:28:09 · 157 阅读 · 0 评论 -
【Leetcode】无重复字符的最长字串||带输出测试(滑动窗口+HashMap)
滑动窗口,遇到重复的则重新检查(要记录该字符最后出现的位置而非首次出现位置),并实时更新最长子串ans。,请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。原创 2023-08-07 13:16:15 · 209 阅读 · 0 评论 -
【Leetcode】(自食用)树的中序遍历(递归+栈非递归)
给定一个二叉树的根节点。原创 2023-08-04 15:46:59 · 185 阅读 · 0 评论 -
【Leetcode】(自食用)删除链表中倒数第k个结点
一定要一开始用一个对象来存head,因为当前的head是一个固定的内存指向,无论如何返回的就是当前的head结点。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。原创 2023-08-02 16:35:51 · 199 阅读 · 0 评论 -
【Leetcode】(自食用)LRU算法(哈希链表法)
/ 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}lRUCache.put(4, 4);// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}lRUCache.put(2, 2);// 缓存是 {1=1, 2=2}// 返回 -1 (未找到)lRUCache.get(1);// 返回 -1 (未找到)lRUCache.put(1, 1);// 缓存是 {1=1}lRUCache.get(1);请你设计并实现一个满足。的平均时间复杂度运行。原创 2023-08-04 12:38:44 · 217 阅读 · 0 评论 -
【Leetcode】(自食用)找到消失的数字
中的数字,并以数组的形式返回结果。24 / 34 个通过的测试用例。原创 2023-08-03 17:28:40 · 176 阅读 · 0 评论 -
【Leetcode】(自食用)三数之和(排序双指针)
错误原因:首先去重了,但是很有可能结果里有不同位置但是数值相同的情况,不严谨。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。原创 2023-08-02 17:47:57 · 297 阅读 · 0 评论 -
【Leetcode】(自食用)简单题||单词数
主要用的是String的replaceAll方法(主要注意题目中:“单词”的定义!这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。原创 2023-08-03 16:27:56 · 158 阅读 · 0 评论 -
【Java||牛客】DFS应用迷宫问题
这里疑惑了好久,后来测试dfs完的数组确实路径是对的,但是赎出的坐标不正确,可能就是这个原因。它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。再输入相应的数组,其中的1表示墙壁,0表示可以走的路。数据范围: 2 \le n,m \le 10 \2≤n,m≤10 , 输入的内容只包含 0 \le val \le 1 \0≤val≤1。5.细心,边界的情况,不只是越大界,还有可能i<0,因为dfs会往回走。原创 2023-07-27 11:59:44 · 247 阅读 · 0 评论 -
【scau算法设计与分析·复习】博客汇总||章节整理||第二章~第五章
整理。原创 2021-12-25 20:15:32 · 423 阅读 · 0 评论 -
【算法设计与分析·复习】第五章-回溯算法||整理
未完。原创 2021-12-25 20:00:35 · 612 阅读 · 0 评论 -
【算法设计与分析·复习】第三章-动态规划||自食用
第三章。动规。未完原创 2021-12-25 17:29:12 · 493 阅读 · 0 评论 -
动态申请数组(c)
//一维数组动态申请,c数组大小为: nint *c=new int[n];//二维数组动态申请,b数组大小为: n*pint **b=new int*[n];for(int i=0;i<n;i++) b[i]=new int[p];//三维数组动态申请, a数组大小为: m*n*p:int ***a=new int **[m];for(i=0;i<m;i++){ a[i]=new int *[n]; for(j=0;j<n;j++) ...原创 2021-12-24 09:37:52 · 524 阅读 · 0 评论 -
【算法设计与分析·复习】第四章-贪心算法||自食用
没写完。原创 2021-12-22 20:36:58 · 515 阅读 · 0 评论 -
【算法设计与分析·复习】第二章-分治||自食用
step by step.一、 分治概念分治:将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。二、 分治基本思想????三、 分治常见递推方程????四、 例题分析2.4 大整数的乘法请设计一个有效的算法,进行两个n位二进制大整数的乘法运算XY = ac 2n + (ad+bc) 2n/2 + bd为了降低时间复杂度,必须减少乘法的次数,即减小子问题个数。第一个方案:XY = ac 2n +原创 2021-12-19 23:33:10 · 691 阅读 · 0 评论 -
【算法设计与分析·复习】第二章-递归||时间复杂度计算||自食用
step by step.一、 递归:直接或间接地调用自身的算法二、 例2-4 排列问题设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列•设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。•集合X中元素的全排列记为perm(X)。•(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。2-4 排列问题算法思路????T(n) = O(n!)2-4 排列问题算法代码v.原创 2021-12-19 16:39:04 · 419 阅读 · 0 评论 -
【算法设计与分析】17103基站建设(贪心算法)
scau-oj-17103基站建设原创 2021-11-17 11:43:35 · 3580 阅读 · 0 评论 -
【算法分析与设计】8602区间相交问题||快排cmp重写
step by step.目录题目:Description输入格式输出格式输入样例输出样例提示参考:思路:代码:题目: Description 给定x轴上n个闭区间,去掉尽可能少的闭区间,使剩下的闭区间都不相交。注意:这里,若区间与另一区间之间仅有端点是相同的,不算做区间相交。例如,[1,2]和[2,3]算是不相交区间。 输入格式 第一行一个正整数n(n<=50),表示闭区间数。接下来n行中,每行.原创 2021-11-17 10:18:06 · 173 阅读 · 0 评论 -
【scau算法设计分析】8596最长上升子序列||动态规划||例子详解||思路
我说,别白嫖。目录一、 题目Description输入格式输出格式输入样例输出样例提示二、 思路分析例子:三、 代码一、 题目 Description 当元素 ai1 < ai2 < ... < aiK. 就说这个序列是有序上升的。给定序列(a1, a2, ..., aN),存在许多这样的子序列(ai1, ai2, ..., aiK),其中1 <= i1 < i2 < ... < iK &l原创 2021-11-01 22:51:44 · 150 阅读 · 0 评论 -
【scau算法设计分析】17082找出两个序列的第k小的数
我说,别白嫖。一、 题目 Description 已知两个已经排好序(非减序)的序列X和Y,其中X的长度为m,Y长度为n,现在请你用分治算法,找出X和Y的第k小的数,算法时间复杂度为O(max{logm, logn})。此题请勿采用将序列X和Y合并找第k小的O(m+n)的一般方法,要充分利用X和Y已经排好序的这一特性。 输入格式 第一行有三个数,分别是长度m、长度n和k,中间空格相连(1<=m,n<=100000; 1<=k<=m原创 2021-10-18 20:22:33 · 189 阅读 · 0 评论 -
【算法设计与分析】11087统计逆序对(c)
一、 题目 Description 设a[0…n-1]是一个包含n个数的数组,若在i<j的情况下,有a[i]>a[j],则称(i, j)为a数组的一个逆序对(inversion)。比如 <2,3,8,6,1> 有5个逆序对。请采用类似“合并排序算法”的分治思路以O(nlogn)的效率来实现逆序对的统计。一个n个元素序列的逆序对个数由三部分构成:(1)它的左半部分逆序对的个数,(2)加上右半部分逆序对的个数,(3)再加上左半部分元素大于右半部分元素的数..原创 2021-10-16 10:50:38 · 437 阅读 · 0 评论 -
【scau算法分析设计】10343划分凸多边形||10344加括号||17083多重幂计数(不超时:存储已计算值)(分治)
目录一、 题目Description输入格式输出格式输入样例输出样例提示二、分析三、 代码一、 题目 Description 问题描述:一个正凸N边形,可以用N-3条互不相交的对角线将正N边形分成N-2个三角形。现在要求读入N边形的N(N≤20),输出不同划分方法的总数(要求解的是划分方法数,而不需要输出各种划分法)。这里,注意:(1)顶点编号,认为顶点皆不相同,因此不允许认为将凸N边形转置视为相同划分。(2)若输出原创 2021-10-13 17:36:44 · 447 阅读 · 0 评论 -
【scau算法设计分析】17088求众数(排序法)
目录一、 题目Description输入格式输出格式输入样例输出样例提示二、方法3(排序法)思路:关于快速排序(algorithm算法库)的应用:代码:三、方法4(分治法)别nm只会白嫖 : )一、 题目 Description 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。求众数方法很多,现要.原创 2021-10-11 23:31:31 · 420 阅读 · 0 评论 -
【scau算法分析设计|整理】线性时间选择(找第k小/大数)
k:找第k小的元素一、一般线性时间选择问题(1) 排序法通常算法:排序;找第k小的数(但是会冗余)(2) 堆+部分排序意思:不构成完全堆,指利用其中一部分。 建最小堆,然后弹堆顶k次。优点:比数组好,经得起反复找。缺点:空间消耗大。时间复杂度:O(n+k*logn)。【当k很小,就约等于线性效率】(3) 堆(O(nlogk))【好方法——把前k小的元素放入堆(最大堆)中,则堆顶为第k小的数。优点:堆的空间很小。最详细的堆排序-...原创 2021-10-09 20:29:48 · 284 阅读 · 0 评论 -
【scau算法分析设计】8594重复元素排列(c)
目录一、 题目Description输入格式输出格式输入样例输出样例提示二、 分析无重复元素原代码:(参考书本P13)有重复元素:三、 代码结果:一、 题目 Description 设集合R={r1,r2,...,rn}是要进行排列的n个元素,其中r1,r2,...,rn可能相同。试着设计一个算法,列出R的所有不同排列。即,给定n以及待排的n个可能重复的元素。计算输出n个元素的所有不同排列。 输入格式 第1行是.原创 2021-10-09 09:22:26 · 190 阅读 · 0 评论 -
【scau算法分析设计】17086字典的全排序(c、STL的next_permutation())
一、 题目 Description 什么叫字典序,顾名思义就是按照字典的排列顺序。以字典序为基础,我们可以得出任意两个数字串的大小。比如 "1" < "12"<"13"。 就是按每个数字位逐个比较的结果。对于一个数字串的排列,可以知道最小的排列是从小到大的有序串“123456789”,而最大的排列串是从大到小的有序串“987654321”。这样对于“123456789”的所有排列,将他们排序,即可以得到按照字典序排序的所有排列的有序集合。因此,当我们知道当前的...原创 2021-10-08 23:17:58 · 180 阅读 · 0 评论 -
【scau算法分析设计】11076浮点数表达(c)
11076 浮点数表达目录11076 浮点数表达题目:Description输入格式输出格式输入样例输出样例提示思想:代码:1. 第一次提交(出错——结果:2. 第二次提交结果:题目: Description 在计算机中,用float或double来存储小数有时不能得到精确值,若要精确表达一个浮点数的计算结果,最好用分数来表示小数,有限小数或无限循环小数都可以转化为分数,无限循环小数的循环节用括号标记出来。如:0..原创 2021-10-06 16:04:16 · 120 阅读 · 0 评论 -
【scau算法分析设计】8593 最大覆盖问题(java、c)[java真的可以用来试错!!]
#include <iostream>#include <stdlib.h>#include <stdio.h>#include <math.h>using namespace std;int main(){ int n; scanf("%d",&n); int num[n]; int b,i,j; int length=1; for(int i=0; i<n; i++) {.原创 2021-09-29 17:34:21 · 492 阅读 · 2 评论 -
【scau算法分析设计】11075强盗分赃|17963 完美数(c)
11075 强盗分赃数学分析法#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;int main(){ int n; scanf("%d",&n); if(n<3121) printf("impossible"); int sum =0; for(int x=255;; x++){ .原创 2021-09-29 17:28:24 · 1197 阅读 · 0 评论 -
【scau算法分析设计】9715相邻最大矩形面积【java、c】
一、 题目 Description:在X轴上水平放置着 N 个条形图,这 N 个条形图就组成了一个柱状图,每个条形图都是一个矩形,每个矩形都有相同的宽度,均为1单位长度,但是它们的高度并不相同。例如下图,图1包含的矩形的高分别为2,1,4,5,1,3,3 单位长度,矩形的宽为1单位长度。 你的任务就是计算柱状图中以X轴为底边的最大矩形的面积。图2阴影部分就是上述例子的最大矩形面积。 输入格式 输入数据的第一行是一个整.原创 2021-09-27 21:24:35 · 654 阅读 · 0 评论