
基础算法
文章平均质量分 81
m0_51864047
这个作者很懒,什么都没留下…
展开
-
剑指offer 接雨水(单调栈、前缀和、双指针)
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2022-09-24 17:20:50 · 363 阅读 · 1 评论 -
剑指offer 丑数(dp、指针)
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第n个丑数。原创 2022-09-04 23:17:53 · 323 阅读 · 0 评论 -
剑指offer 数组中出现次数超过一半的数字
描述链接给一个长度为 nnn 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为 999 的数组 [1,2,3,2,2,2,5,4,2][1,2,3,2,2,2,5,4,2][1,2,3,2,2,2,5,4,2] 。由于数字 222 在数组中出现了 555 次,超过数组长度的一半,因此输出 222。数据范围:n≤50000n \le 50000n≤50000,数组中元素的值 0≤val≤100000 \le val \le 100000≤val≤10000要求原创 2022-05-23 21:39:34 · 134 阅读 · 0 评论 -
剑指offer 数组中只出现一次的两个数字(位运算,空间复杂度限制)
题目链接:剑指 Offer 56 - I. 数组中数字出现的次数剑指 Offer 56 - II. 数组中数字出现的次数 II数组中数字出现的次数 题目描述:一个整型数组 nums\text{nums}nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是 O(n)O(n)O(n),空间复杂度是 O(1)O(1)O(1)。输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]输入:nums = [1,2,10,4,1,4,3,3]原创 2022-05-13 22:30:48 · 266 阅读 · 0 评论 -
剑指OfferJZ38字符串的排列(next_permutation实现、康托展开)
剑指offer JZ38题目描述输入一个长度为 nnn 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如:输入字符串 ABC\text{ABC}ABC ,则输出由字符 A,B,C\text{A,B,C}A,B,C 所能排列出来的所有字符串 ABC\text{ABC}ABC , ACB\text{ACB}ACB , BAC\text{BAC}BAC , BCA\text{BCA}BCA , CBA\text{CBA}CBA 和 CAB\text{CAB}CAB。数据范围原创 2022-05-08 01:16:21 · 533 阅读 · 0 评论 -
天梯赛 L2-030 冰岛人(LCA,树上倍增)
链接题面描述:2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下:冰岛人沿用的是维京人古老的父系姓制,孩子的姓等于父亲的名加后缀,如果是儿子就加 sson,女儿则加 sdottir。因为冰岛人口较少,为避免近亲繁衍,本地人交往前先用个 App 查一下两人祖宗若干代有无联系。本题就请你实现这个 App 的功能。输入格式:输入首先在第一行给出一个正整数 NNN(1<N≤1051<N≤10^51<N≤原创 2022-03-26 22:15:38 · 493 阅读 · 0 评论 -
P1886 滑动窗口(单调队列)
滑动窗口传送门题目描述有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。例如:The array is [1,3,-1,-3,5,3,6,7], and k = 3。输入格式输入一共有两行,第一行有两个正整数 n,k。 第二行 n 个整数,表示序列 a。输出格式输出共两行,第一行为每次窗口滑动的最小值第二行为每次窗口滑动的最大值输入样例8 31 3 -1 -3 5 3 6 7输出样例原创 2021-05-04 17:46:03 · 176 阅读 · 0 评论 -
会场安排问题
会场安排问题问题描述有一个会议室,同时只能被一个会议使用。现在有n个会议申请,每个申请给出了会议开始时间、结束时间。问如何安排,才能使最多的会议召开。方法将n个会议按开始时间从早到晚排序。将第一个会议选入。之后的第i个会议,设开始时间为sis_isi,结束时间为fif_ifi,设上一个被选入的会议开始时间为spres_{pre}spre,结束时间为fpref_{pre}fpre。若si>=fpres_i>=f_{pre}si>=fpre,则将第i个会议选入,原创 2021-04-30 10:03:26 · 1067 阅读 · 0 评论 -
POJ2559 Largest Rectangle in a Histogram(单调栈)
#include<cstdio>#include<algorithm>#define int long longusing namespace std;const int maxn=1e5+5;struct N{int h,w;}st[maxn];int tot,v,n,ans;signed main(){ while(scanf("%lld",&n),n){ tot=0; ans=0; for(int i=0;i&l原创 2021-05-04 17:28:23 · 124 阅读 · 0 评论 -
快速排序【模板】
快速排序模板一(单边)void sort(int l,int r){ if(r<=l) return; int p=l,ra=0; swap(a[l],a[(l+r)/2]); for(int i=l+1;i<=r;i++) if(a[i]<a[l]||a[i]==a[l]&&(ra^=1)) swap(a[i],a[++p]); swap(a[l],a[p]); sort(l,p-1);sort(p原创 2021-03-24 15:24:03 · 298 阅读 · 0 评论 -
算法课程期末总结
基本分治法动态规划贪心回溯法分支界限法随机化算法NP完全性理论基本OOO、Ω\OmegaΩ、Θ\ThetaΘ渐近上界、渐近下界与渐近精确界。分治法把一个大问题分为若干规模较小,具有相同形式的问题。二分查找例题:在单调递增序列aaa中查找≥x\ge x≥x的数中最小的一个。while(l<r){ int mid=(l+r)/2; if(a[mid]>=x) r=mid; else l=mid+1;}return a[l];循环日程赛不.原创 2021-06-22 19:40:47 · 422 阅读 · 0 评论 -
2020ICPC南京 F Fireworks(概率,三分)
链接题目描述Kotori is practicing making fireworks for the upcoming hanabi taikai1. It takes her nn minutes to make a single firework, and as she is not really proficient in making fireworks, each firework only has a probability of p×10−4p \times 10^{-4}p×10−4原创 2021-11-27 22:06:57 · 312 阅读 · 0 评论 -
Simone and Graph Coloring(思维,线段树,二分)
题目描述链接Simone, a student of Graph Coloring University, is interested in permutation. Now she is given a permutation of length nnn, and she finds that if she connects each inverse pair, she will get a graph. Formally, for the given permutation, if i<ji&原创 2021-09-21 20:05:34 · 180 阅读 · 0 评论 -
2020ICPC上海 D Walker(思维、二分、三分)
链接题目描述As a world-famous traveler, Prof. Pang’s research interest is to travel as many places as possible in his life.We have a segment [0,n]{[0, n]}[0,n]. There are two travelers on it. The first one is on position p1p_1p1 with velocity v1v_1v1 (which原创 2021-11-22 16:12:50 · 963 阅读 · 0 评论 -
POJ2182 Lost Cows(树状数组、二分、倍增)
Lost Cows题目链接DescriptionN (2 <= N <= 8,000) cows have unique brands in the range 1…N. In a spectacular display of poor judgment, they visited the neighborhood ‘watering hole’ and drank a few too many beers before dinner. When it was time to line u原创 2021-07-16 16:40:33 · 310 阅读 · 0 评论