- 博客(21)
- 问答 (1)
- 收藏
- 关注
原创 计算机考研复试题(近十万字)
本文为博主考研期间准备的知识点,涵盖本科大部分内容,其中大部分在复试期间准备的。复试非常非常重要,准备的越充分越好,希望大家重视。本文内容为本人自己总结及从其他地方看到的一些资源。格式凌乱,后续会慢慢整理,祝各位前程似锦!
2022-04-03 10:36:08
14869
7
转载 佛祖保佑,永无BUG
佛祖保佑,永无bug。四轮面试,吓死我啦,祝我面试通过, 哈哈哈。原文出处// _ooOoo_// o8888888o// 88" . "88//
2020-12-18 20:17:19
247
1
原创 浅谈设计模式
设计模式访问者模式单例模式工厂模式责任链模式我们一直所说C++是一个面向对象的语言,也了解它的三大基本特性:封装、继承和多态,但是这些和工程实践中的联系却是有一点距离,下面来通过四个设计模式来描述一下面向对象在工程实践中的应用。访问者模式情景举例现在我们有一个基类A, 然后有多个子类B、C、D继承于A类,现在我们有一个存放A类指针的数组来存放每一个对象,对于每一个对象执行相应的类操作(这里简化直接输出子类的名字)。经过思考,之前的智能指针dynamic_cast可以胜任这样的工作。进行判断后,可以输
2020-12-08 23:18:38
142
原创 最大子段和的分治算法
问题描述给定由 n 个整数(可能为负整数)组成的序列,求解其连续的最大字段和。当所有数都是负整数时,最大字段和是 0 .如:a[] = {-2, 11, -4, 13, -5, -2}时, max = 11 + (-4) + 13 = 20.分治算法思想将所给序列a[1:n] 分成a[1:n/2] 和 a[n/2 + 1 : n]两个部分,则最大值有一下三种情况:整个序列的字段和与左半部分相同整个序列的子段和与右半部分相同整个序列的子段和 在两个部分的中间连接部分对应前两种情况利用递归可
2020-11-26 20:10:23
4200
转载 快速了解桶排序
桶排序(箱排序)原理及其时间复杂度详解排序充斥着我们的生活,比如站队、排队买票、考试排名、公司业绩排名、将电子邮件按时间排序、QQ 好友列表中的会员红名靠前,等等。这里先举个例子,通过这个例子让我们接触第 1 个算法。在某个期末考试中,老师要把大家的分数排序,比如有 5 个学生,分别考 5、9、5、1、6 分(满分 10 分),从大到小排序应该是 9、6、5、5、1,大家有没有办法写一段程序随机读取 5 个数,然后对它们排序呢?看到这个问题,我们用 5 分钟想一下该怎么办。办法当然很多,这里使用桶排
2020-11-24 19:44:43
622
原创 Knapsack算法求01背包问题
// 基本状态的动态规划算法Knapsack求解0-1背包问题//时间复杂度为O(nc)template <class Type>void Knapsack(Type* v, int* w, int c, int n, Type** m) { int jMax = min(c, w[n] - 1); for (int j = 0; j <= jMax; j++) { m[n][j] = 0; // 只看最后一个物品,不可以装下的全部为 0 } for (int j =
2020-11-15 19:34:49
973
原创 线性时间选择求第k小数(分治)
**元素选择问题:**给定线性序集中 n 个元素和一个整数 k(1 <= k <= n),要求找出着 n 个元素中第 k 小的元素。RandomizedSelect算法:该算法实际上是模仿快速排序算法设计的,基本思想是对输入的数组进行递归划分。与快速排序的算法不同的是,它只对划分的数组之一进行递归处理。**划分:**以数组的第一个元素作为基准值,设置两个变量分别从前后往中间走,把大于基准值的放在基准值的右半部分,而小于基准值的放在基准值左侧。template<class Type&
2020-11-04 14:19:09
3515
原创 最基本的排序方法--C语言
目录前言稳定排序插入排序冒泡排序归并排序不稳定排序选择排序快速排序前言经典的排序和查找方法是每个人都要掌握的,为了更加深刻的记忆它们,我把排序方法记录在这条菜鸟走向大神的罗马大道上。希望这篇文章可以帮到更多的人。这篇文章的初步分为稳定排序和不稳定排序两个部分,稳定又代表了什么呢,下面有一个数组:arr[ 5, 5, 2, 1, 3],里面有两个数值相等的5,我们加一个符号标记不同位置的5。经过稳定排序后:arr[1, 2, 3, 5, 5] 发现他们的相对位置不改变;而经过不稳定排序后(如快速排
2020-09-30 11:34:48
415
原创 墙壁涂色问题--动态规划
问题描述给一个环形的墙壁涂颜色,颜色一共有 k 种,墙壁被竖直地划分成 n 个部分,相邻的部分颜色不能相同。请你写程序计算出一共有多少种给墙壁上色的方案?例如,当 n=5,k=3 时,下面是一种合法的涂色方案而由于墙壁是环形的,所以下面就是一种非法的方案输入输入两个数字 n,k(1≤n≤103,2≤k≤10),分别代表墙壁数量和颜色种类。输出对于每个询问,输出一行整数,合法的墙壁涂色方案数。样例输入15 3样例输出130数据规模与约定时间限制:5 s内存限制:256 M
2020-09-29 19:17:40
1539
1
原创 广搜走地图问题
广搜走地图问题一般用来解决从起点到达目的地的最短路径问题。首先我们来看一下广搜所需要的知识点一节小技巧:结构体:记录走到(x,y)点的所消耗的代价,即步数。队列。从起点开始,首先将起点放入队列里,然后就每次从队列里面取出一个节点,从当前点开始向周围遍历,可以走到的节点就进队列,直到队列为空或者找到目标位置。从(1,1)开始存,防止潜在的越界所发生的段错误。方向数组:通过方向数组来找到和所在位置有接触的点(下一个位置)方向数组的4个方向(或者8个)千万不要写错。下面我们来一个例子来说明:问题描述
2020-09-24 18:34:32
250
原创 数据库期末复习总结
精心整理了一下数据库的知识点总结,不想让它只服务一次,大家有需要的拿走吧。源文件Xmind:https://share.weiyun.com/GnEwK56j
2020-09-13 16:36:31
587
原创 template模板实现max任意不同类型的比较
问题描述我们再使用C++自带的max比较时, 只能比较相同类型的数据:cout << max(4.5, 6) << endl; // 这句话就会报错故此我们可以使用模板来进行改写。先上代码:#include <iostream>using namespace std;namespace haizei { class Max{ public: template<typename T, typename U>
2020-08-06 13:53:31
592
原创 素数筛和线性筛
问题描述:快速的求出一个数 n 是不是素数。素数筛素数筛的原理就是利用已知的素数来标记合数,然后将素数进行排序。上例子:第一个素数是2, 第一次我们先把2的倍数都给标记了,一直到 n 位置然后把 2 放到数组中的prime[1] 中去, prime[0]记录已经找到素数的数量,prime[0]加一。接下来进行对3的标记。当查到4的时候,他是2的倍数,是合数被标记过,我们跳过去判断5...
2020-07-11 11:10:19
243
原创 ./a.out: error while loading shared libraries: libcjson.so.1: cannot open shared object file: No suc
问题用自己的库编写程序运行时报错:./a.out: error while loading shared libraries: libcjson.so.1: cannot open shared object file: No such file or directory分析原因:链接器ld提示找不到库文件。ld默认的目录是/lib和/usr/lib,如果放在其他路径也可以,需要让ld知道库文件所在的路径。找不到这个动态库,解决方法:# vim /etc/ld.so.conf //在
2020-07-04 20:40:13
2796
转载 vim 删除行首指定数量字符
1、删除每行前10个字符::%s/^.\{10\}//其中,%表示所有行,s表示替换,"%s"可用"1,$“代替(下同);正则表达式”/.{10}//"中,表示行首;".“表示要删除的字符个数,”.{10}“表示删除10个字符,可用10个”."表示;2、删除每行后10个字符:%s/.\{10\}$//其中,"$"表示行尾,其他同上;原文链接:https://blog.youkuaiyun.com/u010555688/article/details/60136349....
2020-07-02 11:18:12
3583
原创 新颖思路解决日期的合法性(C++)
题目:测试程序将随机给你一个格式为-连接了年、月、日的日期字符串(其中的数字都是没有前导零的,也就是说7不会被写成07)。你将需要判断这个日期在我们的公历体系内是否真实存在。如果存在则输出YES,否则输出NO。对判断闰年进行封装一个函数#include <iostream>using namespace std;int leap_year(int y) { if (y % 4 == 0 && y % 100 != 0) return true; if (
2020-06-30 11:12:59
454
转载 用于QA
1.What is the most shocking advertisement you have ever seen? Describe it.I have ever seen lots of advertisements, but the most shocking advertisement i have ever seen is a Public Service Announcement.At the beginning of the advertisement, a little baby
2020-06-05 09:00:06
544
原创 动态规划--实战举例
动态规划--实战举例简要说明1.最优子结构2.无后效性3.常见的状态转移方程经典例题0/1背包问题问题描述解决简要说明一般来说,一个问题如果能用动态规划方程方法来求解,必须满足无后效性原则和最优子结构。而解决问题的方式,则是通过状态方程来完成。1.最优子结构对于多阶段问题,如果每一个阶段的最优决策序列的子序列也是最优的,且决策序列也是最优的,且决策序列具有“无后效性”,就可以将此决策方法理...
2020-04-22 15:24:00
612
原创 (selset()函数、poll()和eopll()函数的区别
文章目录(selset()函数、poll()和eopll()函数的区别selset()函数poll()函数epoll()函数三个函数的优缺点总结(selset()函数、poll()和eopll()函数的区别selset()函数作用:使用select()就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映...
2020-04-12 11:07:10
613
TA创建的收藏夹 TA关注的收藏夹
TA关注的人