- 博客(12)
- 收藏
- 关注
原创 字符串的重复判断
刚才无意间看到一个数学题目,六位数能被9整除,且各个数字不相同,求最大的六位数减最小六位的数。看到这种题目我想都没想就直接打开了vs,中途遇到了一个问题就是不能有重复的数字,我就用itoa函数将数字转换成字符串然后再判断:bool Check_2(char* str){if (*str == 0) return false;for (char* p = str; *p != 0; p++){ for (char* q = p + 1; *q != 0; q++) { if (*p == *
2020-07-22 17:01:18
576
1
原创 电话狂人
原题:https://pintia.cn/problem-sets/15/problems/722题目要求:思路同样也是用优先队列和向量容器实现,不过有一些细节处理的感觉有点不好。比如遍历的时候总是涉及到数组越界的问题和优先队列越界的问题,我都是最后单独讨论了,我也想不到其他的更好的方法了。可能就是这些细节导致我最后是没有通过。代码:#include#include#include#includeusing namespace std;priority_queue<long long
2020-07-21 21:25:35
163
1
原创 修理牧场
原题:https://pintia.cn/problem-sets/15/problems/856题目要求:这个题目的思路还是比较简单的,将输入的数存入一个数组,进行重大到小的排序,然后将最后两个数相加,并删除最后两个数,将相加的结果插入数组,再次排序,直到数组中只有一个元素。一开始我用的是vector容器实现,发现超时了:#include#include#include#includeusing namespace std;//int Solution(int n, vector v)
2020-07-18 16:09:34
260
1
原创 求中位数
原题:https://pintia.cn/problem-sets/15/problems/3001题目要求:思路很简单,创建两个vector容器,将其中一个插入另一个,再将这个容器排序,输出中位数即可。#include#include#includeusing namespace std;int mid(vector& v1, vector& v2, int m){for (int i = 0; i < m; i++){v1.push_back(v2[i]);
2020-07-14 15:57:43
389
1
原创 员工分组-STL案例
案例描述:1、公司今天招聘了10个员(ABCDEFGHUIJ),10名员工进入公司后,需要指派员工在那个部门工作。2、员工信息有:姓名 工资组成;部门分为:策划、美术、研发3、随机给10名员工分配部门和工资4、通过multimap进行信息的插入 key(部门编号)value(员工)5、分部门显示员工信息实现步骤:1、创建10名员工,放入vector中2、遍历vector容器,取出每个员工,进行随机分组3、分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器
2020-07-10 14:28:50
328
1
原创 QQ帐户的申请与登陆
原题:https://pintia.cn/problem-sets/15/problems/723题目要求:看到这个要求中有不能创建相同的qq号,我就想到要用set容器了,然后我就自定义了一个qq的类,然后自定义排序了一下。我的代码:#include#includeusing namespace std;class QQ{public:QQ(string acount, string codes){this->m_Acount = acount;this->m_Cod
2020-07-08 17:02:00
264
1
原创 统计工龄
原题:https://pintia.cn/problem-sets/15/problems/721题目要求:思路:建立一个容器储存数据然后进行排序通过遍历的方式将其输出代码:#include#includeusing namespace std;void Sort(vector& v, int left, int right);void func(vector v){Sort(v, 0, v.size() - 1);int b;int j = 0;for (int i =
2020-07-06 16:11:26
127
原创 汉诺塔的非递归实现
原题:https://pintia.cn/problem-sets/15/problems/821汉诺塔的实现对于与我这种菜鸟来说第一时间都是想到递归,而且通过了。不过我看了一下非递归的思路:汉诺塔的非递归算法描述如下:首先容易证明,当盘子的个数为n时,移动的次数应等于2^n - 1。一位美国学者发现一种出人意料的方法,只要轮流进行两步操作就可以了。首先把三根柱子按顺序排成品字型,把所有的圆盘按从大到小的顺序放在柱子A上。根据圆盘的数量确定柱子的排放顺序:若n为偶数,按顺时针方向依次摆放 A B
2020-07-04 18:46:22
971
原创 多项式乘法和加法
原题:https://pintia.cn/problem-sets/15/problems/710题目要求:这个题目我写了很久,看到的第一眼就是用pair和vector或者list来创建一个式子,然后我又看了看题目发现要求排序,我就用了list因为list可以有一个自定义的排序,用pair的第一个数表示式子的系数,第二个表示指数。我写了很久才完成了加法。//bool compare(pair<int, int>&p1, pair<int, int>&p2)/
2020-07-03 10:41:20
236
原创 最大子列和的问题
原题:https://pintia.cn/problem-sets/15/problems/709刚开始的时候看到题目想到直接暴力求解将数列的所有子数列求出来然后再找最大值,显然是不行的,肯定超时。然后借鉴了别人的思路:对于数列{p1}:max1=p1;{p1,p2}:max2=(p2,p1+p2){p1,p2,p3}:max3=(p3,p2+p3,p1+p2+p3)…{p1,p2,…pn}:maxn=(pn,pn+pn-1…,p1+p2+…+pn)然后对于{max1,max2}:MAX=
2020-07-01 16:56:01
108
1
原创 PTA 6-2顺序表操作集
题目:原题地址:https://pintia.cn/problem-sets/15/problems/725这个题目的顺序表与一般的不同原因是这个顺序表的第一个元素的位置在1而一般的顺序表的第一个元素位置在0,所以造成了一些麻烦。List定义typedef int Position;typedef struct LNode List;struct LNode {ElementType Data[MAXSIZE];Position Last; / 保存线性表中最后一个元素的位置 */};
2020-06-30 18:49:02
296
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人