编程刷题训练
PTA、HDU、LeetCode
sail Jamie
把简单留给用户,也把简单留给自己
展开
-
【牛客网SQL篇】非技术快速入门
sql-quick-study01 基础查询概念:基础查询SQL1 查询多列题目: 现在运营同学想要用户的设备 id 对应的性别、年龄和学校的数据,请你取出相应数据语法: select 要显示的列名 from 表名; SELECT 关键字后给出多个列名,列名之间必须以逗号分隔SELECT device_id, gender, age, universityFROM user_profile;SQL2 查询所有列题目: 现在运营想要查看用户信息表中所有的数据,请你取原创 2022-05-25 22:58:59 · 915 阅读 · 0 评论 -
【牛客网SQL篇】SQL必知必会
sql-teach-yourself01 检索数据SQL1 从 Customers 表中检索所有的 ID题目: 编写 SQL 语句,从 Customers 表中检索所有的cust_idSELECT cust_idFROM Customers;SQL2 检索并列出已订购产品的清单题目: 编写SQL 语句,检索并列出所有已订购商品(prod_id)的去重后的清单。SELECT DISTINCT prod_idFROM OrderItems;SQL3 检索所原创 2022-05-31 00:01:01 · 1555 阅读 · 4 评论 -
LeetCode -007.数组中和为0的三个数 -Java
LeetCode -007.数组中和为0的三个数 -Java原创 2021-10-24 15:03:52 · 1417 阅读 · 0 评论 -
LeetCode-1. 两数之和 -Java
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9原创 2021-02-17 01:24:02 · 124 阅读 · 0 评论 -
【LeetCode 学习计划】
【LeetCode 学习计划】原创 2021-11-11 17:28:45 · 1291 阅读 · 0 评论 -
LeetCode -11. 盛最多水的容器 -Java
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中原创 2021-02-17 01:52:33 · 140 阅读 · 0 评论 -
LeetCode -226.翻转二叉树 -Java
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/invert-binary-tree翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1解题思路:翻转整棵树就是交换每个节点的左右子节点/** * Definition for a binary tree no原创 2021-02-21 22:37:49 · 116 阅读 · 0 评论 -
Text Reverse hdu-1062 C++
题目链接解析:字符串反转。。输入多个用例每个用例都当做是字符串遍历字符串,遇到空格即将当前位置的前一个字符到上个空格(如果有的话)之间的子字符串翻转输出,再输出空格,遇到结束符‘\0’即将当前位置的前一个字符到上个空格(如果有的话)之间的子字符串翻转输出,再输出换行#include<iostream>#include<string>using namespace std;int main(){ int n; string s; cin原创 2021-01-24 23:23:49 · 182 阅读 · 0 评论 -
Climbing Worm hdu-1049 C++
题目链接思路 :n既是井深度,也是蠕虫离井的顶部长度。向上爬->n减小休息滑落->n增加"当n小于等于0时,即为成功爬出。"时间初始设为1,先判断向上爬一次后n是否小于等于0,如果是:结束循环,输出结果;否则:时间+2(n>0:向上爬没到顶,接下来又休息滑落),继续循环。#include<iostream>using namespace std;int main(){ int n, u, d; int i; while (cin&原创 2021-01-17 23:38:47 · 105 阅读 · 0 评论 -
整数解 hdu-2092 C++
题目链接#include<iostream>using namespace std;int main(){ int n, m; bool fa; while (cin>>n>>m) { fa = false; if (n == 0 && m == 0)break; for (int i = -10000 + 1; i < 10000; i++)原创 2021-01-25 00:01:57 · 256 阅读 · 0 评论 -
圆桌问题 hdu-4841 C++
题目链接#include<iostream>#include<vector>using namespace std;int main(){ int n,m; int a[33000]; vector<int> v; while (cin>>n>>m) { v.clear();//清空初始化 int temp = 0; memset(a, 0, siz原创 2021-01-24 23:12:53 · 203 阅读 · 0 评论 -
今年暑假不AC hdu-2037 C++
题目链接#include<iostream>#include<algorithm>using namespace std;struct Mytime{ int start_time; //开始时间 int end_time; //结束时间}movie[105];//结束时间排序 从早到晚排序bool cmp(Mytime m1 , Mytime m2){ return m1.end_time < m2.end_time;}i原创 2021-01-17 22:45:58 · 147 阅读 · 0 评论 -
Least Common Multiple hdu-1019 C++
题目链接思路:如题求最大公倍数所用函数//求最大公因数int gcd(int a, int b){ return b ? gcd(b, a%b) : a;}//求最大公倍数int lcm(int a,int b){ //a、b相乘除以最大公约数 return a / gcd(a, b) *b;}代码#include<iostream>using namespace std;int gcd(int a, int b){ return原创 2021-01-17 23:17:17 · 77 阅读 · 0 评论 -
ACboy needs your help again! hdu-1702 C++
题目链接考察栈与队列#include<iostream>#include<string>#include<stack>#include<queue>using namespace std;int main(){ int n; cin >> n; while (n--) { int m; string str; int temp; ci原创 2021-01-24 23:28:57 · 142 阅读 · 0 评论 -
FatMouse‘ Trade hdu-1009 C++
题目链接#include<iostream>#include<algorithm>#include<iomanip>using namespace std;struct MyStruct1{ int j, f; //JavaBean 、 猫粮 double value; //综合价值}Trade[1005];//价值降序排序bool cmp(MyStruct1 m1,MyStruct1 m2){ return m1.val原创 2021-01-17 22:50:18 · 91 阅读 · 0 评论 -
又见GCD hdu-2504 C++
题目链接思路:b是a和c的最大公约数,即 c 是 b (和a) 的整数倍 ;又c不等于b,即c可能是b的2倍大,3倍大,4倍大。。。;c每次自增b,直到"a和c的最大公约数为b"这一条件满足,此时c即为所求值的最小。#include<iostream>using namespace std;int gcd(int a, int b){ return b ? gcd(b, a%b) : a;}int resultgcd(int a,int b){ int i原创 2021-01-17 23:08:51 · 100 阅读 · 0 评论 -
PTA L2-011 玩转二叉树 (25 分) Java
题目链接给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数 N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样例:原创 2021-02-24 23:02:06 · 378 阅读 · 0 评论 -
PTA - L2-006 树的遍历 (25 分) -Java
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2解题思路:通过题目给出的二叉树的后序遍历 和 前序遍历 ,构原创 2021-02-24 16:14:25 · 401 阅读 · 0 评论 -
PTA L2-003 月饼 (25 分) C++
题目链接月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。原创 2021-02-19 02:07:42 · 193 阅读 · 0 评论 -
PTA L1-072 刮刮彩票 (20 分) C++
题目链接“刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示:每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9,数字各不重复,并以 3×3 的“九宫格”形式排布在彩票上。在游戏开始时能看见一个位置上的数字,其他位置上的数字均不可见。你可以选择三个位置的数字刮开,这样玩家就能看见四个位置上的数字了。最后玩家再从 3 横、3 竖、2 斜共 8 个方向中挑选一个方向,方向上三个数字的和可根据下列表格进行兑奖,获得对应数额的金币。数字合计获得金币数字合计获得金币原创 2021-02-10 19:47:55 · 2566 阅读 · 1 评论 -
PTA L1-070 吃火锅 (15 分) C++
题目链接以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。输入格式:输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时,输入结束,此行不算在朋友信息里。输出格式:首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息,检查其原创 2021-02-06 17:45:45 · 2310 阅读 · 1 评论 -
PTA L1-069 胎压监测 (15 分) C++
题目链接小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的胎压,并给出正确的报警信息。报警规则如下:如果所有轮胎的压力值与它们中的最大值误差在一个给定阈值内,并且都不低于系统设定的最低报警胎压,则说明情况正常,不报警;如果存在一个轮胎的压力值与它们中的最大值误差超过了阈值,或者低于系统设定的最低报警胎压,则不仅要报警,而且原创 2021-02-06 00:21:40 · 2434 阅读 · 1 评论 -
PTA L1-059 敲笨钟 (20 分) C++/JAVA
题目链接微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。输入格式:输入首先在第一行给出一个不超过原创 2021-02-05 16:12:07 · 367 阅读 · 0 评论 -
PTA L1-058 6翻了 (15 分) C++/Java
题目链接“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。输入格式:输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。输出格式:从左到右扫描输入的句子:如果句原创 2021-02-04 23:12:00 · 496 阅读 · 1 评论 -
PTA L1-046 整除光棍 (20 分) C++
题目链接这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 ——原创 2021-02-03 21:09:16 · 419 阅读 · 0 评论 -
PTA L1-039 古风排版 (20 分) C++
题目链接中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case输出样例:asa Tst ihe tsi ce s思路:有那么点转置矩阵的味道以样例说明:将输入的字符串转成字符数组原创 2021-02-02 23:14:54 · 774 阅读 · 0 评论 -
PTA L1-025 正整数A+B (15分) C++ 坑好多~
题目链接题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。输出格式:如果输入的确是两个正整数,则按格式A + B = 和输出。如果某个输入不合要求,则在相应位置输出?,显原创 2021-02-01 22:41:26 · 357 阅读 · 0 评论 -
PTA L1-019 谁先倒 (15分) C++
题目链接划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。输入格式:输入第一行先后给出甲、乙两人的酒量(不超过100的非负整数),以空格分隔。下一行给出一个正整数N(≤100),随后N行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊原创 2021-02-01 13:24:28 · 242 阅读 · 0 评论 -
PTA L1-018 大笨钟 (10分) C++
题目链接微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。下面就请你写个程序,根据原创 2021-02-01 11:29:37 · 524 阅读 · 0 评论 -
PTA L1-017 到底有多二 (15分) C++
题目链接一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出一个不超过50位的整数N。输出格式:在一行中输出N犯二的程度,保留小数点后两位。输入样例:-13142223336输出样例:81.82%原创 2021-01-31 23:39:58 · 644 阅读 · 3 评论 -
PTA L1-016 查验身份证 (15分) C++
题目链接一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入格式:输入第一行给出正整数N(≤100)原创 2021-01-31 23:03:05 · 162 阅读 · 0 评论 -
PTA L1-011 A-B (20分) C++
题目跳转本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过 10^4 ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式:在一行中打印出A−B的结果字符串。输入样例:I love GPLT! It's a fun game!aeiou输出样例:I lv GPLT! It's fn gm原创 2021-01-30 13:30:59 · 172 阅读 · 1 评论 -
PTA L1-006 连续因子 (20分) C++
题目链接#include<iostream>#include<cmath>using namespace std;int main(){ long long N; long sum; long start = 0, len = 0;//start 起始位置 len 最长连续因子的个数 cin >> N; for (int i = 2; i < sqrt(N); i++) { sum =原创 2021-01-29 23:06:33 · 294 阅读 · 0 评论 -
PTA L1-005 考试座位号 (15分) C++
题目链接#include<iostream>using namespace std;//准考证号 试机座位号 考试座位号struct student{ char examNum[20]; int test; int exam;}stu[1005];int main(){ int N; int M; cin >> N; for (int i = 1; i <= N; i++) { ci原创 2021-01-29 21:36:58 · 235 阅读 · 0 评论 -
PTA L1-003 个位数统计 (15分) C++
题目链接#include<iostream>#include<cstring>using namespace std;int main(){ int a[10] = {0};//该数字出现的次数正好等于数组下标所在对应的元素值 char N[1005]; cin >> N; //遍历每一位字符 for (int i = 0; i < strlen(N); i++) { //将字符转化为对应的INT原创 2021-01-29 14:23:00 · 102 阅读 · 0 评论 -
PTA L1-002 打印沙漏 (20分) C++
题目链接PS: 符号数右边如果有空格,不用输出,会报格式错误!!!#include<iostream>using namespace std;int main(){ int N; char ch; cin >> N>>ch; int line = 1; //记录上面第一层的符号数 N = N - 1; //记录剩下没用掉的符号数 for (int i = 0; i < N; i++) { //符原创 2021-01-29 13:45:47 · 144 阅读 · 0 评论 -
PTA L1-050 倒数第N个字符串 (15分) C++
题目链接#include<iostream>#include<cmath>using namespace std;int main(){ int L, N; cin >> L >> N; char ch[6]; int temp = pow(26, L) - N; for (int i = 0; i < L; i++) { ch[i] = temp % 26 + 'a';原创 2021-01-24 23:46:06 · 192 阅读 · 0 评论 -
PTA L1-071 前世档案 (20分) C++
题目链接用进制的概念,问题回答 否 二进制位为 “1”,问题回答 是 二进制位为 “0”,即yny --> 010 = 2因为结论是从1开始,二进制“000”是从“0”开始的,所以输出的结果要再加1.#include<iostream>#include<cmath>using namespace std;int main(){ int N, M; cin >> N >> M; int result;原创 2021-01-24 23:40:00 · 1686 阅读 · 0 评论 -
PTA L1-009 N个数求和 (20分) C++
题目链接#include<iostream>using namespace std;//最大公约数long gcd(long a,long b){ return b ? gcd(b,a%b) :a;}int main(){ int N = 0; int a[105] = {}, b[105] = {}; cin >> N; for (int i = 0; i < N; i++) { cin &原创 2021-01-17 22:53:18 · 350 阅读 · 0 评论 -
L2-009 抢红包(25分)-- C++
题目链接#include<iostream>#include<algorithm>using namespace std;int N = 0; //参与发红包和抢红包的总人数int K = 0; //发出去的红包个数int N1 = 0; //抢到红包的人的编号int P1 = 0; //抢到红包金额struct MyStruct{ int id; //编号 int count; //发包个数 int money; //总金额}perso原创 2021-01-17 22:32:27 · 243 阅读 · 0 评论