排序
算法初步专栏
yc_cy1999
一只喜欢cc和想去南大的小羊
展开
-
【排序+寻找消失元素】LeetCode 448. Find All Numbers Disappeared in an Array
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点数组结果实现码前思考我的思路是排序。设置一个指针,从左到右遍历,让每个元素归位;遍历完之后,如果出现不匹配的位置,那么代表缺失。代码实现class Solution {public: vector<int> findDisappearedNumbers(vector<int>& nums) { int pos=0;//当前要移动的位置 .原创 2020-07-28 16:15:34 · 114 阅读 · 0 评论 -
LeetCode 148. Sort List【链表+归并排序】⭐⭐⭐⭐⭐
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点链表、归并排序结果实现码前思考由于题目要求空间复杂度是 O(1)O(1)O(1),因此不能使用递归。因此这里使用 bottom-to-up(自底向上) 的算法来解决。bottom-to-up 的归并思路是这样的:先两个两个的 merge,完成一趟后,再 4 个4个的 merge,直到结束。举个简单的例子:[4,3,1,7,8,9,2,11,5,6]。step=1: (3->4)->(1->7)-&.原创 2020-07-25 18:10:47 · 111 阅读 · 0 评论 -
LeetCode 56. Merge Intervals【排序+数组】⭐⭐⭐
文章目录题目描述知识点结果实现码前思考代码实现标准解题代码菜鸡解题代码码后反思题目描述知识点排序,数组结果实现码前思考就是贪心算法区间合并。。。(虽然没说要最大化,但是这样做就是最大化的。。。)代码实现标准解题代码class Solution {public: vector<vector<int>> merge(vector<vector<int>>& intervals) { sort(int.原创 2020-07-22 17:57:00 · 87 阅读 · 0 评论 -
PAT A1028 List Sorting
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述按指定规则进行排序知识点排序实现码前思考很久没做过这么水的题了,哭了代码实现//水题 #include <cstdio>#include <iostream>#include <string>#include <algorithm>using namespace std;const int maxn = 1e5+10;struct stu{ int id; s.原创 2020-06-03 20:14:14 · 81 阅读 · 0 评论 -
PAT A1062 Talent and Virtue
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述根据给定规则,对人进行排序知识点排序实现码前思考主要就是要看清题目中条件,要仔细看是大于,还是等于,还是小于,不要粗心;此外,在输入数据时就应该对人划分等级呀,这样后面排序会好弄很多。你要是排序时再划分等级,呵呵~代码实现//t >= L && v >= L// t >= H && v >= H ---> sages// t < H &&.原创 2020-06-02 18:54:57 · 78 阅读 · 0 评论 -
PAT A1016 Phone Bills
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点排序实现码前思考2. 由于经过了按名字排序,所以相同的用户一定在一起,那么就可以进行on和off的匹配了,匹配就是一个比较easy思考的问题了,主要是代码比较复杂;代码实现#include <iostream>#include <cstdio>#include <string>#include <algorithm>using namespace std;c.原创 2020-06-01 22:08:09 · 196 阅读 · 0 评论 -
⭐【优先队列】PAT A1014 Waiting in Line
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL优先队列实现码前思考之前2,4,5测试用例一直没有过,是因为自己没有看懂题目中说的,17:00点及17:00以后是不会被服务的,而17:00之前就开始服务的,会一直被服务到完成为止!(但是好奇怪,题目明明说了小时最大为17啊,万一人家要服务到20呢。。。)其他就还好,定义优先队列,采用双重的优先级,先判断早点结束,再判断窗口序号代码实现//使用优先队列进行实现//注意K是从1开始的//我们的窗口从0开始编号.原创 2020-05-31 20:03:44 · 256 阅读 · 0 评论 -
⭐⭐⭐⭐⭐【贪心+巧用排序】PAT A1038 Recover the Smallest Number
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述题目大意:给一些字符串,求它们拼接起来构成最小数字的方式知识点贪心思想+排序实现码前思考这道题目我真就一开始啥都没想到,我还想了一种特别特别复杂的方法,最后放弃了,选择看柳神的代码。。。分析:贪心算法。让我们一起来见证cmp函数的强大之处!!不是按照字典序排列就可以的,必须保证两个字符串构成的数字是最小的才行,所以cmp函数写成return a + b < b + a;的形式,保证它排列按照能够组成的最小数字的形式排.原创 2020-05-30 21:27:36 · 105 阅读 · 0 评论 -
PAT A1075 PAT Judge
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述分析:排序;排序的顺序是总分大>满分通过的数目多>学生id小。这道题模仿PAT的得分情况对其排序进行输出。知识点排序题实现码前思考就是多重条件排序我测试点4没有过,不知道是为什么。。。代码实现#include <iostream>#include <vector>#include <algorithm>using namespace std;struct node{.原创 2020-05-30 21:07:41 · 86 阅读 · 0 评论 -
【排序+思维】PAT A1085 Perfect Sequence
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述题目大意:给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入第一行给出两个正整数N(输入正数的个数)和p(给定的参数),第二行给出N个正整数。在一行中输出最多可以选择多少个数可以用它们组成一个完美数列知识点排序实现码前思考需要从小到大排序,然后也是从小到大去匹配,每次i的匹配都是从i.原创 2020-05-25 22:14:44 · 101 阅读 · 0 评论 -
⭐PAT A1089 Insert or Merge
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述给定一个序列A和序列B判断,序列B是序列A的插入排序还是归并排序的中间结果,并且输出序列B的下一步结果。知识点排序实现码前思考首先,这道题我并不会做,我做错了,我是看了网上的解答的;解题思路就是先插入排序一次,判断是否是插入排序,不是就进行归并排序;这里的归并排序是递推的写法,而不是递归,我之前想错了,看来手动模拟一下测试用例还是非常有必要的!关于归并排序的递推写法,主要把握两个细节:每次是合并一系列为step大小的区.原创 2020-05-24 18:40:23 · 172 阅读 · 0 评论 -
⭐⭐⭐⭐⭐PAT A1095 Cars on Campus
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述1095 Cars on Campus (30分)知识点排序+大模拟实现码前思考这道题目我不会。。。虽然只是模拟题,但我依然不太会写,我抄柳神代码的。需要将时间统一化成秒;柳神的思路如下:代码实现#include <iostream>#include <vector>#include <algorithm>#include <cstring>#include &l.原创 2020-05-18 23:45:44 · 116 阅读 · 0 评论 -
PAT A1101 Quick Sort
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点排序、思维实现码前思考首先,肯定不能每次都进行排序,肯定会超时!!!所以需要寻找线性时间复杂度的方法;首先,从左到右进行遍历,同时记录下每个数左边的最大值,判断其是否比它大;其次,从右到左进行遍历,同时记录下每个数右边的最小值,判断其是否比它小;满足上述两种情况的数就是pivot代码实现//不存在相同数字 //从左到右表示 //从右到左来一遍 #include "bits/stdc++.h"using n.原创 2020-05-11 17:25:53 · 110 阅读 · 0 评论 -
PAT A1153 Decode Registration Card of PAT
文章目录题目描述知识点实现码前思考码后反思题目描述1153 Decode Registration Card of PAT (25分)知识点STL的使用,排序实现码前思考大型模拟题针对每一种情况,我都使用了一个容器存储结果,这样查询的时候就可以直接查询了。//究极模拟题//注意判空 #include "bits/stdc++.h"using namespace std;int n;int m;struct node{ string id; int score;.原创 2020-05-10 18:58:24 · 185 阅读 · 0 评论 -
PAT A1141 PAT Ranking of Institutions
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述1141 PAT Ranking of Institutions (25分)知识点PAT传统艺能——排序题实现码前思考需要注意一些细节:成绩是直接保留整数部分而不是四舍五入;对于rank的输出的代码,PAT很多题都是这个套路,我记下来了,感觉很欣慰;代码实现//开两个unordered_map和一个结构体 #...原创 2020-05-07 17:36:46 · 127 阅读 · 0 评论 -
PAT A1137 Final Grading
文章目录题目描述知识点实现码前思考码后反思码后反思题目描述知识点排序实现码前思考简单模拟题码后反思#include "bits/stdc++.h"using namespace std;const double v = 0.4;struct stu{ string id; int pa; int gm; int gf; int g; stu(){};...原创 2020-05-05 20:53:26 · 203 阅读 · 0 评论 -
【topN+模拟最小堆的思路】⭐PAT A1129 Recommendation System
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点排序、STL实现码前思考我在一开始使用了最愚蠢的方法,那就是每次都使用sort进行一次新的排序,果然是运行超时了;后来看别人的题解,发现原来这个其实就是一个TopN问题,自己明明之前在堆里面做过很多关于TopN,而这次还是没有记起该怎么做,我好菜。所以,使用TopN的思想,每次维系前N个数就好了。代码实现/...原创 2020-05-03 22:00:53 · 236 阅读 · 0 评论 -
PAT A1125 Chain the Ropes
文章目录题目描述知识点实现题目描述知识点排序+贪心实现#include "bits/stdc++.h"using namespace std;const int maxn = 1e4+10;int n;double num[maxn];int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf...原创 2020-05-02 16:22:46 · 84 阅读 · 0 评论 -
PAT A1113 Integer Set Partition
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点排序+思维实现码前思考很容易的一道题;注意这里的所谓set居然有重复数字,太不严谨了;代码实现#include "bits/stdc++.h"using namespace std;const int maxn = 1e5+10;int n;int nums[maxn];int main()...原创 2020-04-29 22:42:08 · 68 阅读 · 0 评论 -
PAT A1109 Group Photo
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述题目实在是太长了。。。知识点排序实现码前思考就是使用sort函数进行排序的一个题目。。。代码实现#include "bits/stdc++.h"using namespace std;const int maxn = 10;const int maxm = 1e4+10;int n;int k;...原创 2020-04-28 20:24:23 · 126 阅读 · 0 评论 -
LeetCode 33. Search in Rotated Sorted Array【二分法】⭐⭐⭐
文章目录题目描述知识点结果实现码前思考代码实现码后反思参考文档题目描述知识点二分查找结果实现码前思考看见这种找数字而且还要求的时间复杂度为 O(logN)O(logN)O(logN) 的题目,基本可以确定是二分查找题了。既然明确只能二分,那我们来看看怎么做?二分要求在有序的数组中使用,因此我们的当务之急是找到两个有序数组的分界线!怎么找两个数组的分界线呢? 同样使用二...原创 2020-04-25 16:09:33 · 111 阅读 · 0 评论 -
外接圆的半径
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点二分实现码前思考我不会。。。代码实现#include "bits/stdc++.h"using namespace std;int n;int len[101];const double PI = acos(-1);bool check(double r) { double angle...原创 2020-04-12 13:42:20 · 1559 阅读 · 1 评论 -
日志排序——北京大学
文章目录知识点疑问代码未改进代码改进代码反思知识点输入 和 排序疑问关于输入还存在疑惑代码未改进代码/**1.首尾有空格2.之间空格不定**/ #include "bits/stdc++.h" #include<string>#include<vector> using namespace std;struct myLog{ strin...原创 2020-03-15 15:00:13 · 345 阅读 · 0 评论 -
成绩排序——2000年清华大学
文章目录知识点疑问代码反思知识点排序疑问暂无代码//由于题中未说有多少个组测试用例,我们保险一些#include "bits/stdc++.h"using namespace std;const int maxn = 110;struct stu{ int num; int score; //成绩为整数 }stus[maxn];//输入的学生的数量 int...原创 2020-03-15 10:40:14 · 207 阅读 · 0 评论 -
排序——2006年华中科技大学
文章目录知识点疑问代码反思知识点排序算法疑问暂无代码//本题采用快速排序试试,练练手 #include "bits/stdc++.h"using namespace std;const int maxn = 110;//输入的数字数,也就是长度 int n; //存储数据的数组int A[maxn];int partition(int A[],int l...原创 2020-03-15 10:07:58 · 83 阅读 · 0 评论 -
排序算法
文章目录0. 引言1. 直接选择排序(1) 算法步骤(2) 算法演示(3) 代码实现2. 冒泡排序(1) 算法步骤(2) 算法演示(3) 代码实现3. 直接插入排序(1) 算法步骤(2) 算法演示(3) 代码实现4. 归并排序(1) 算法步骤(2) 算法演示(3) 代码实现5. 快速排序(1) 算法步骤(2) 算法演示(3) 代码实现6. 堆排序参考文档排序算法是基础算法之一,属于常见题型。...原创 2020-03-14 14:13:07 · 242 阅读 · 0 评论