- 博客(44)
- 收藏
- 关注
原创 【蓝桥杯练习--递归】费解的开关
费解的开关按法与顺序无关每个各自最多按一次枚举第一行的操作每一行开关的操作由上一行灯的亮灭唯一确定枚举第一行的状态利用位运算从第二行开始由上一行灯的亮灭决定本行的开关操作,当要执行第h行时,前n-1行一定全亮,只要特判最后一行是否全亮即可在做题时要注意数据范围!飞行员问题可以直接枚举216到225定义偏移量...
2020-12-03 21:23:59
266
1
原创 【蓝桥杯练习--二分】789. 数的范围
二分的时间复杂度是O(log n)789. 数的范围本题使用遍历查找会超时,应使用二分#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <math.h>using namespace std;int main(){ //读取数据 int n, q; cin >> n >
2020-10-10 13:28:00
951
原创 【蓝桥杯练习--BFS】1233. 全球变暖
1233. 全球变暖#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#define x first#define y secondusing namespace std;typedef pair<int, int> PII;const int N = 1010;int n;char g[N][N];bool st[N
2020-10-09 21:03:56
135
原创 【蓝桥杯练习--DFS】1113. 红与黑
1113. 红与黑收获:报错如下error: array bound is not an integer constant before ‘]’ token声明数组时必须使用const2.
2020-10-03 13:58:33
389
原创 【蓝桥杯练习--BFS】1096. 地牢大师
1096. 地牢大师是 1101. 献给阿尔吉侬的花束的变形,从二维变成三维,思路相同,创建一个dist数组用来存放每个点的状态以及遍历到的时间,当遍历到end点时,即为最短时间/路径。本题的难点是三位数组的读取。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=110;s
2020-09-30 20:30:27
250
原创 【蓝桥杯练习--双指针】1240. 完全二叉树的权值
1240. 完全二叉树的权值完全二叉树:一种特殊的二叉树,除最下一层外,其余每一层都是有两个孩子,最后一层的孩子全部集中在左边。思路:第n层元素的个数是2n遍历每层元素求和,比较得到和最大的情况,返回对应的深度#include <iostream>#include <cstdio>#include <math.h>using namespace std;typedef long long LL;int main(){ int n
2020-09-29 21:15:12
269
原创 【蓝桥杯练习--图论】1224. 交换瓶子
1224. 交换瓶子ps:也可以使用贪心类似于小朋友排队每个瓶子看作一个点,以它为起点向它应该在的点连一条边,则起始状态可以构成k个闭环。每个点的出度为1,入度也为1。这个数组可以构成一个无向图,包含n个点,n条边。最开始为若干个环 最后应为n个自环。交换会有两种结果:情况1:交换同一个环内的点 -> 会裂开为两个环情况2:交换两个不同环中的点 -> 将两个环合并所以一定有某种方案可以将原有的k个环拆分为n个自环,所以最小步数为n-k时间复杂度为O(N)#include
2020-09-28 21:39:12
236
原创 【蓝桥杯练习--双指针】1238.日志统计
题目:1238. 日志统计日志就是记录暴力解法:先for循环多个时间段循环每个时间段内每个帖子被点赞的数量如果帖子的数量大于等于K,则说明是热帖伪代码如下:for(时间段) //循环多个时间段{ //memset清空 memset(cnt,0,sizeof cnt); //循环每个时间段内 for(id) //循环此时间段内的所有id { cnt[id]++; //cnt记录被点赞次数
2020-09-27 21:22:45
225
原创 【蓝桥杯练习--双指针、BFS、图论】
双指针本质上就是两个下标i,j的同时移动//一个优化,缩短了时间复杂度for(int i=0,j=0;i<n;i++) while(j<i) j++;队列:先进先出栈:先进后出
2020-09-27 21:20:51
186
原创 【LeetCode】二分专题汇总
二分专题:原视频特点二分的题目答案在一个确定的取范 [L,R] 内,所以每次找到取范区间的中点,并通过比较中点与目标值来缩小一般的范围,当 L=R 时,即找到答案。通常70%的题目是通过单调性(递增/减序列排成一列进行比较);95%的题目通过性质分界点,即题目中的变量存在两端性的性质(找到满足和不满足性质的分界点)思路二分题目的思路:确定二分边界编写二分的代码框架设计一个check(性质)判断一下区间如何更新如果更新方式写的是l=mid,r=mid-1,那么就在算mid的时候加上1
2020-09-26 19:33:39
188
原创 【算法课】0_1 图形矩阵
回型矩阵(非递归) 题目描述输入一个正整数n(n<100),输出n阶回型矩阵。输入样例6输出样例 1 2 3 4 5 6 20 21 22 23 24 7 19 32 33 34 25 8 18 31 36 35 26 9 17 30 29 28 27 10 16 15
2020-09-17 23:09:39
504
原创 【操作系统原理】fork()生成8个进程的理解
代码:#include <stdio.h>#include <unistd.h>#include <sys/types.h>int main(){ int i,p_id; if((p_id==fork())==0) { for(int i=1;i<3;i++) printf("This is child process\n"); if(p_id==-1) {
2020-09-17 19:24:01
1231
原创 【LeetCode之每日一题系列】226. 翻转二叉树
226. 翻转二叉树直接使用递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* in
2020-09-16 19:29:24
114
原创 【LeetCode-204】1569. 将子数组重新排序得到同一个二叉查找树的方案数
【困难】1569. 将子数组重新排序得到同一个二叉查找树的方案数思路:代码:相关链接:
2020-09-16 19:12:29
211
原创 【LeetCode-204】1568. 使陆地分离的最少天数
【困难】1568. 使陆地分离的最少天数思路:注意:判断连通块数量cnt是否大于1/等于0遍历每个结点,如果某个点未被遍历且为1,则找到了一个连通块,此时需要使用dfs判断周围是否有相连陆地(为了将此块陆地所连接的所有1进行标记)如果(cnt > 1 || cnt == 0),不需要操作,直接返回0否则,再次遍历,依次尝试删除一块陆地能否满足cnt>1,如果能满足,则返回1;否则返回2(默认一定有解)只需要将陆地分开,每个陆地可以是一个1,也可以是多个1连在一起形成一个连通分
2020-09-16 15:27:29
177
原创 【LeetCode-204】1567. 乘积为正数的最长子数组长度
【中等】1567. 乘积为正数的最长子数组长度递归是一种特殊的DP思路1:(不推荐)暴力:枚举所有的子数组,计算其结果是否为正。但是复杂度为n2,所以要进行优化思路2:(推荐)因为要求结果为正的最长数组的长度,所以不妨从末尾出发向前递推到符合条件的最长子数组分情况讨论ai的正负,长度为以a[i-1]结尾的最长子数组其中f(n)/g(n)表示以a[n]结尾的,结果为正/负的最长子数组的长度。所以f(n)/g(n)的值一定大于等于0,因为是长度。可得如下表格:第i个元素的大小(ai
2020-09-16 13:35:26
271
原创 【LeetCode-204】1566. 重复至少 K 次且长度为 M 的模式
【简单】题目:1566. 重复至少 K 次且长度为 M 的模式思路:长度是确定的,所以枚举起点,从起点开始是否有长度为k*m的片段【n】判断后面的km段是否将m重复了k遍【n】【时间复杂度nn 满足】代码:class Solution { public: bool containsPattern(vector<int>& arr, int m, int k) { int n=arr.size();
2020-09-16 12:16:39
182
原创 【后端】进程&线程
进程&线程进程与线程的区别(是什么?如何理解?)进程是资源分配的最小单位,线程是CPU调度的最小单位进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是独立运行和独立调度的基本单位(CPU上真正运行的是线程)。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。什么是进程?进行中的程序(让
2020-09-15 20:07:24
150
原创 大三的我该何去何从。。
已经大三了,之前“时间还多”的接口对于现在的自己来说已经不适用了,并且自己接下来面临的巨大选择也很多。很多人都说大三开始要找实习了,但是在查找了资料后愈发觉得自己没有希望了,又是省创又是acm的大佬们都在不断碰壁,我这么个末流211的小菜鸡又如何能在一众大神中找到自己的立足点呢。怎么说呢,有点后悔自己大一大二一直在放纵自己玩耍了。之前听信了所谓“大学无用论”的说辞,觉得大学课本都没什么作用,但今天看了面试题后发现,并不是的,很多基础的都是在课本上,所以一时不知道该如何给自己再找理由开脱。总之,现在的结局
2020-09-14 21:23:28
120
原创 【递归与递推】翻硬币(简化版费解开关)
翻硬币费解开关的简化版有解的话 必然只有一组解#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 110;int n;char start[N],aim[N];void turn(int i){ if(start[i]=='*') start[i]='o'; else start[i]='*';}
2020-09-14 19:46:26
258
原创 【Google Kickstart】吃糖果(第一题难度)
吃糖果Supervin喜欢吃糖果。今天,他最喜欢的糖果店提供了N个糖果,排列成一排。这一排中的第i个糖果(从1开始计数)的甜度为Si。请注意,糖果的甜度可能是负的,这意味着糖果味道很苦。Supervin喜欢吃甜的糖果。然而,吃掉的糖果的甜度总和不能超过D,否则对他来说摄入糖分的量就超标了。Supervin同时意识到甜度为奇数的糖果是“奇怪的”,他不想吃超过O个这样的糖果。换句话说,奇怪的糖果是甜度不能被2整除的糖果。此外,由于Supervin时间紧迫来不及挑选,所以只能吃下若干连续排在一起
2020-09-14 19:09:44
869
原创 【Google Kickstart】2019-A-2
题目二:包裹恭喜你被聘为著名包裹投递公司的首席决策者(CDM)。客户喜欢更快的物流,因此你决定在全球范围内降低包裹的运输时间,从而吸引更多客户。你已经向当局介绍了这个想法,他们已经为你分配了足够的预算来建立一个新的运输处。我们将世界划分为一个R×C的方格矩阵。每个方格内或者存在一个运输处,或者没有。你可以选择一个还未建立运输处的方格,在上面建立新的运输处。如果某方格包含运输处,则包裹到该方格的运输时间为0。否则,该方格的运输时间被定义为该方格与包含运输处的任何其他方格之间的最小曼哈顿距离。
2020-09-14 11:05:00
194
原创 【Google kickstart】2019-A-1
题目描述作为一名学校足球教练,你的任务是挑选一支由P个学生组成的团队代表你的学校。共有N名学生供你挑选,第 i 名学生的技术等级为Si,这是一个正整数,表示他们的技术水平。在你看来一个合理的团队中的P个球员的技术应该是相当的,这样才能使每个人都融入到队内。在最开始,你可能无法直接选出一个配置合理的队伍,因此你将为一些学生提供一对一的辅导。将一名学生的技术等级提高1需要你花费1个小时的时间来进行辅导。比赛季很快就开始了(事实上,第一场比赛已经开始了!),所以你想知道训练出一个合理的团队,你需要提供
2020-09-14 09:44:46
260
原创 虚拟机崩了。。
前言:先说卸载是因为大一安装了VM Ware虚拟机,但前两天更新了mac系统到Catalina后就崩了????,挂起可以看到但是运行就是却黑屏,原因是更新了电脑系统之后,虚拟机的权限不够,无法获得屏幕权限所以看不到,但是VM Ware本身也发现了这个问题,已经在最新版本解决了,只需要更新就可以了。然而,噩梦才刚刚开始,当我点击更新并等待了大约一小时后,更新完成了,但是!安装失败了并且无法关闭,一直卡在那里。于是我强制关闭了,然后,它自己把自己删了????。于是,我连删除虚拟机的途径都没有了。。。本来想弃
2020-09-13 19:31:30
322
原创 Github基础操作(配置环境、创建项目等)
配置Git配置SSH KEY创建项目Fork项目删除项目配置本地客户端项目clone至本地本地项目上传到仓库编写readme文件分支合并
2020-09-13 17:54:07
852
原创 面试分享-第一弹-简历
终于跟上了y总的直播,满满都是干货啊,抱紧大佬大腿!!!所以总结了下来,和大家分享的同时,也给自己存个档啦~BV号:BV1cT4y1A7mY(原视频)TIPS要会表达自己实习经历一定要多,可以把实习过程中的项目单独列出来,项目就算不做也需要了解清楚,面试官会问得很细第一份实习非常重要,是后面的基础如果没有项目经验的话可以用自己的大作业,或者找一些现有项目然后把思路过程看懂。每个项目的项目介绍都要准备好,把细节和技术点说出来。最好附带一份英文简历,要多花时间去完善自己的简历在介绍环节多表达
2020-09-12 23:43:19
316
原创 2020新学期~
2020新学期~~打起精神来!2020年9月1号,离开南京一个半月后又回到了这里,有一种既陌生有熟悉的感觉,上半年的生活因为突如其来的疫情被打乱,幸运的是学校在上学期仍然开了学。(虽然当时气得要死,但现在回想起来,幸好开学了,不然不知道自己要多废了。。不得不说,学校老师真的从各个角度为我们着想)在上大学之前自己有着很多的报复:要拿很高很高的绩点、要读很多很多的书、要交很多很多的朋友、要成为理想中的人…但不知道是疲倦期,亦或是没有看到自己想要的结果就想放弃了,总之逐步成为了自己不喜欢的那种人,每天浑浑噩
2020-09-12 18:25:37
159
原创 datafaker测试数据生成工具
一、安装python和pip管理工具1.通过homebrew安装python2.利用python3检查是否安装成功3.进入python后安装pip(python3以下使测试数据生成工具)二、安装datafaker三、使用datafaker创造数据并导入数据库1.datafaker的使用方法:https://blog.youkuaiyun.com/A15517340610/article/details/105623103/2.URL的书写方法:https://blog.youkuaiyun.com/A155173
2020-05-29 19:31:04
712
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人