
2020暑期进阶
2020暑假学习记录
HeyRena
这个作者很懒,什么都没留下…
展开
-
【力扣刷题】217. 存在重复元素
题目来源:217. 存在重复元素 - 力扣(LeetCode)思路:先给数组进行排序,cnt为慢指针,i为快指针,当数组当前元素等于前一个元素时,说明存在重复元素,return true;否则慢指针右移一位,继续查找重复元素;如果循环结束仍未return true,return false。AC代码:class Solution {public: bool containsDuplicate(vector<int>& nums) { int len=n原创 2020-08-18 22:14:35 · 256 阅读 · 0 评论 -
【力扣刷题】274. H 指数
题目来源:274. H 指数 - 力扣(LeetCode)思路:(1)令cnt等于数组长度,并用其来计数作为最终输出的答案;(2)对数组进行排序后,逆序循环比较,如果当前论文被引用次数大于cnt,说明超出引用指标,符合要求,cnt+1;(3)输出cnt。AC代码:class Solution {public: int hIndex(vector<int>& citations) { int len=citations.size();原创 2020-08-16 20:45:46 · 258 阅读 · 0 评论 -
【力扣刷题】134. 加油站
题目来源:134.加油站 - 力扣(LeetCode)思路:参考学习了两个思路的解法:(1)官方题解:在我看到第二种就是(2)用图的思想分析时,我觉得官方和大佬的想法在本质上不谋而合,共同点且核心都是利用油量的变化,只不过官方题解使用了两个变量——总油量和当前油量进行比较判断,微观上用当前油量判断,如果行驶到下一个加油站当前油量小于0,说明排除从这个加油站开始环绕一周的可能,ans=i+1;宏观上用总油量判断,如果行驶一周后总油量小于0,说明无法成功环绕一周。代码运行时间相比(2)较长。加油站原创 2020-08-16 19:55:31 · 267 阅读 · 0 评论 -
【菜鸟进阶之路】P2955 [USACO09OCT]Even? Odd? G - 洛谷
一、题目部分选自洛谷:P2955 [USACO09OCT]Even? Odd? G二、解题过程思路因为数的大小最大可以达到10^60,所以用字符串存储数,并在输出时对字符串末位的数与2求余即可进行奇偶数的判断。提交AC答案#include<bits/stdc++.h> using namespace std; int n;struct Num{ string a; int len;}num[101];int main() { scanf("%d",&a原创 2020-08-15 18:45:08 · 405 阅读 · 0 评论 -
【菜鸟进阶之路】P4327 [COCI2006-2007#1] Okviri - 洛谷
一、题目部分选自洛谷:P4327 [COCI2006-2007#1] Okviri二、解题过程思路for循环+根据题目要求进行条件判断,具体细节见代码。提交AC答案#include<bits/stdc++.h> using namespace std; string wd;int main() { cin>>wd; int len=wd.length(); for(int i=1;i<=5;i++) { for(int j=1原创 2020-08-15 17:59:46 · 603 阅读 · 0 评论 -
【力扣刷题】299. 猜数字游戏
题目来源:299. 猜数字游戏 - 力扣(LeetCode)思路:参考了这位大佬的解题思路要点:先找公牛,再找母牛;用过的做标记。学到了一个很棒的函数C++中string::find()函数和string::npos函数的使用AC代码:class Solution {public: string getHint(string secret, string guess) { int bulls=0; int cows=0; f原创 2020-08-15 16:43:21 · 259 阅读 · 0 评论 -
【力扣刷题】41. 缺失的第一个正数
题目来源:41. 缺失的第一个正数 - 力扣(LeetCode)思路:参考了大佬的方法三(将数组视为哈希表),整体的思路是每一个正整数i对应的下标为i-1,通过for及while循环将每个正整数交换到正确的位置,然后从第0位开始循环查找,如果出现数&位不匹配则输出该下标本该对应的正数,即为缺失的第一个正数。原地哈希(哈希函数为:f(nums[i]) = nums[i] - 1)AC代码:class Solution {public: void swap(vector<原创 2020-08-14 12:23:16 · 197 阅读 · 0 评论 -
【力扣刷题】189. 旋转数组
题目来源:189. 旋转数组 - 力扣(LeetCode)思路:运用reverse函数C++ reverse函数的用法AC代码:class Solution {public: void rotate(vector<int>& nums, int k) { int len=nums.size(); k=k%len; reverse(nums.begin(),nums.end()); reverse(&原创 2020-08-13 21:59:55 · 186 阅读 · 0 评论 -
【菜鸟进阶之路】P1897 电梯里的爱情 - 洛谷
一、题目部分选自洛谷:P1897 电梯里的爱情二、解题过程思路sort排序,从低层到高层按题目要求计算时间。提交AC答案#include<bits/stdc++.h> using namespace std;int n,ans,a[100001]; int main(){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); for(i原创 2020-08-13 21:06:46 · 495 阅读 · 0 评论 -
【力扣刷题】80. 删除排序数组中的重复项 II
题目来源:80. 删除排序数组中的重复项 II - 力扣(LeetCode)思路:特殊情况:数组的长度为0,直接输出0;一般情况:j为慢指针,i为快指针,当数组当前元素不等于前一个元素/等于前一个元素a的次数为1(特殊之处:下一个元素比较时仍与a比较,因为至多只能出现两个重复项)时复制nums[i]到nums[j](用cnt计数(小于等于1的情况均成立),最后返回数组长度。AC代码:class Solution {public: int removeDuplicates(vecto原创 2020-08-13 15:52:15 · 195 阅读 · 0 评论 -
【力扣刷题】26. 删除排序数组中的重复项
力扣上的第一篇题解原创 2020-08-13 15:20:59 · 198 阅读 · 0 评论 -
【力扣刷题】27. 移除元素(题解笔记)
在力扣上刷的第一道题 记录下大佬的题解原创 2020-08-13 12:32:05 · 317 阅读 · 0 评论 -
【菜鸟进阶之路】P2084 进制转换 - 洛谷
一、题目部分选自洛谷:P2084 进制转换二、解题过程思路(1)因为要进行进制转换的数数位很大,所以以字符串的形式进行存储,然后将每一位存储在整型数组中;(2)当系数为0时,单项式省略,所以跳过输出;(3)当系数不为0时,分两种情况,数尾不全为0时,按格式带加号输出,数尾全为0时,进行判断后不带加号输出,作为多项式的末尾。提交AC答案#include<bits/stdc++.h> using namespace std;int m,len,a[1001];string原创 2020-08-12 17:06:56 · 867 阅读 · 0 评论 -
【菜鸟进阶之路】P4326 [COCI2006-2007#1] Herman - 洛谷
一、题目部分选自洛谷:P4326 [COCI2006-2007#1] Herman二、解题过程思路如下。提交AC答案#include<bits/stdc++.h> using namespace std;int n;#define PI acos(-1) int main(){ scanf("%d",&n); printf("%6lf\n%6lf",n*n*PI,n*n*2.000000); return 0;原创 2020-08-09 16:50:21 · 265 阅读 · 0 评论 -
【菜鸟进阶之路】高精度相关算法模板笔记
两非负数相加#include<bits/stdc++.h>using namespace std;char ch1[20005],ch2[20005];int len1,len2,len,jw;int f1[20005],f2[20005],f[50000];int main(){ cin>>ch1; len1=strlen(ch1); cin>>ch2; len2=strlen(ch2); for(int i=0;i<len1;i.原创 2020-08-08 17:59:52 · 174 阅读 · 0 评论 -
【OpenCV中的Gui特性】把鼠标当画笔 - 自学代码笔记
(根据OpenCV+Python中文教程书籍电子版自学)1. 简单演示import cv2import numpy as np# 查看所有被支持的鼠标事件# events = [i for i in dir(cv2) if 'EVENT' in i]# print(events)#mouse callback functiondef draw_circle(event,x,y,flags,param): if event == cv2.EVENT_LBUTTONDBLCLK:原创 2020-08-04 19:40:43 · 181 阅读 · 0 评论 -
【OpenCV中的Gui特性】OpenCV中的绘图函数 - 自学代码笔记
(根据OpenCV+Python中文教程书籍电子版自学)1. 头文件import cv2import numpy as np2. 创建黑色背景# Create a black imageimg = np.zeros((512,512,3),np.uint8)3. 画线# 画线 起点和终点 从左上方到右下角# Draw a diagonal blue line with thickness of 5 pxcv2.line(img,(0,0),(511,511),(255,0,0),5)原创 2020-08-03 23:39:02 · 219 阅读 · 0 评论 -
【菜鸟进阶之路】P1177 【模板】快速排序 - 洛谷
一、题目部分选自洛谷:P1177 【模板】快速排序二、解题过程思路快速排序算法void qs(),无须赘述。提交AC答案#include<bits/stdc++.h> using namespace std;int n,a[10000000];void qs(int *a,int l,int r){ int m=a[(l+r)/2],i=l,j=r; do{ while(a[i]<m) i++; while(a[j]>m) j--; if(原创 2020-08-03 13:55:20 · 557 阅读 · 0 评论 -
【菜鸟进阶之路】P1830 轰炸III - 洛谷
一、题目部分选自洛谷:P1830 轰炸III二、解题过程思路对于每个关键点,对每次轰炸的范围进行循环读入,若关键点处于轰炸范围内,说明该关键点被轰炸过,轰炸次数+1,并设置整型变量end存储最后一次轰炸的轮次,赋值为循环次数i即可保证轰炸的轮次为最后一次。提交AC答案#include<bits/stdc++.h> using namespace std;int n,m,x,y,x1[101],yy[101],x2[101],y2[101],mp[101][101];st原创 2020-08-01 20:48:07 · 585 阅读 · 0 评论 -
【菜鸟进阶之路】P6367 [COCI2006-2007#6] PRASE - 洛谷
一、题目部分选自洛谷:P6367 [COCI2006-2007#6] PRASE二、解题过程思路设当前总共取走了i份食物,其中一个孩子取走的食物为temp份,若2倍的temp超过i时,说明该小孩拿了超出总份数一半的食物,这时候他的妈妈提醒他的次数+1。提交AC答案#include<bits/stdc++.h> using namespace std;int n,temp,ans;string a[101]; int main(){ scanf("%d",&原创 2020-07-31 19:19:42 · 593 阅读 · 0 评论 -
【OpenCV中的Gui特性】视频 - 自学代码笔记
(根据OpenCV+Python中文教程书籍电子版自学)1. 用摄像头捕获视频cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)while(True): # Capture frame-by-frame ret, frame = cap.read() # Our operations on the frame come here gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # Di原创 2020-07-31 15:25:28 · 165 阅读 · 0 评论 -
【OpenCV中的Gui特性】图片 - 自学代码笔记
1. 头文件# cv2.imread() cv2.imshow() cv2.imwrite()import cv2import numpy as npimport matplotlib.pyplot as plt2. 读入图像img = cv2.imread('1.jpg',0)3. 显示图像`# 原来的写法cv2.imshow('1.jpg',img)cv2.waitKey(0)cv2.destroyAllWindows()# 法一:def cv_show(name,img原创 2020-07-31 13:52:29 · 186 阅读 · 0 评论 -
【Python数据可视化分析】学习笔记
这些天一直在跟着b站上的Python数据可视化分析 matplotlib教程自学数据可视化相关基础知识(这位老师讲得挺好懂的,对新手学习很友好,感兴趣的小伙伴可以自行进入链接),搬运了一些自己在学习过程中编写的代码(主要是跟随教程),以防本地保存的内容丢失。(以下所有的代码可以自行复制到本地,有注释的取消掉注释稍作调整即可运行)一、数据可视化课程及numpy简介# import matplotlib.pyplot as plt# plt.plot([1,2,3],[3,2,1])# plt.sho原创 2020-07-30 18:02:43 · 1172 阅读 · 4 评论 -
【菜鸟进阶之路】P1067 多项式输出 - 洛谷
一、题目部分选自洛谷:P1067 多项式输出二、解题过程思路根据题目给的要求,按照不同条件进行判断并对多项式进行输出:(1)当系数等于0时,直接跳过不输出该项式;(2)当系数大于0时,分为该项为最高次的项时、该项为0次项、该项为1此项和其他项进行讨论;(3)当系数小于0时,同理。(细节见“提交AC答案”部分代码)提交AC答案#include<bits/stdc++.h> using namespace std;int n;//表示一元多项式的次数int a[102原创 2020-07-30 17:13:31 · 332 阅读 · 0 评论 -
【菜鸟进阶之路】 P4924 [1007]魔法少女小Scarlet - 洛谷
一、题目部分选自洛谷:P4924 [1007]魔法少女小Scarlet二、解题过程思路见“提交AC答案”部分给出的注释提交AC答案#include<bits/stdc++.h> using namespace std;int n,m;//n和m分别表示方阵大小和魔法施放次数int x[501],y[501],r[501],z[501];//把以第x行第y列为中心的2r+1阶矩阵按照某种时针方向旋转//z=0表示顺时针,z=1表示逆时针 int a[501][501]原创 2020-07-30 14:39:07 · 490 阅读 · 0 评论 -
【菜鸟进阶之路】P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two - 洛谷
一、题目部分选自洛谷:P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two二、解题过程思路见“提交AC答案”部分给出的注释提交AC答案#include<bits/stdc++.h> using namespace std;char mp[11][11];//存储输入的地图 int cx,cy,fx,fy;//记录两头牛和Farmer John的位置int dc,df;//记录两头牛和Farmer John的行动方向int ans;//存储相原创 2020-07-29 17:37:52 · 491 阅读 · 0 评论 -
【菜鸟进阶之路】P1328 生活大爆炸版石头剪刀布 - 洛谷
一、题目部分二、解题过程思路(1)按照输入样例的格式对将要处理的数据进行输入;(2)根据猜拳次数及小A、小B的出拳规律对数组进行更新和填充,这里的更新和填充指对猜拳次数i求余,求余数为出拳的周期长度;(3)然后按照表格里猜拳的输赢规则循环比较,统计比分,详见AC答案里的compare()函数;(4)最后输出小A、小B的比分。提交AC答案#include<bits/stdc++.h> using namespace std;int n,na,nb,a[201],b[201]原创 2020-07-28 23:30:12 · 337 阅读 · 0 评论 -
【菜鸟进阶之路】P1042 兵乓球 - 洛谷
一、题目部分题目背景国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。题目描述华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。原创 2020-07-28 17:46:40 · 516 阅读 · 0 评论 -
【菜鸟进阶之路】P2089 烤鸡 - 洛谷
很好的一道回溯题被我打成了循环...面壁思过(看来功力还不够深厚)原创 2020-07-20 11:51:38 · 473 阅读 · 0 评论 -
【菜鸟进阶之路】P1051 谁拿了最多奖学金 - 洛谷
期末考结束 继续加油coding~原创 2020-07-19 11:45:25 · 171 阅读 · 0 评论