数据结构和算法
文章平均质量分 51
保持手感
Charles Chou
Think twice,code once !
展开
-
PTA C 1056 组合数的和
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。原创 2024-04-06 12:43:55 · 178 阅读 · 0 评论 -
PTA C 1050 螺旋矩阵(思路与优化)
本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。原创 2024-04-05 17:12:44 · 457 阅读 · 0 评论 -
PTA C 1044 火星文翻译
例如地球人的数字29翻译成火星文就是hel mar;而火星文elo nov对应地球数字115。为了方便交流,请你编写程序实现地球和火星数字之间的互译。原创 2024-04-04 23:08:49 · 203 阅读 · 0 评论 -
LeetCode 334.字符串原地逆置,需要TMP吗?我看未必!
leetcode原创 2022-12-02 13:12:31 · 127 阅读 · 0 评论 -
LeetCode 数据结构 88. 合并两个有序数组
leetcode笔记原创 2022-11-24 16:58:59 · 155 阅读 · 0 评论 -
LeetCode 数据结构与算法:最大子数组和
LeetCode入门原创 2022-11-23 15:25:16 · 623 阅读 · 2 评论 -
【PAT_C11】JAVA
Question:给定区间 [−2幂31,2幂31] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。输入格式:输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。输入样例:41 2 3原创 2021-04-09 15:56:41 · 101 阅读 · 0 评论 -
【PAT_C9】JAVA
Question:定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello解决.原创 2021-04-08 15:21:22 · 91 阅读 · 2 评论 -
【PAT_C8】JAVA
Question:一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。输出格式:在一原创 2021-04-08 11:15:20 · 109 阅读 · 2 评论 -
【PAT_C7】JAVA
Question:让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10次方5),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。输入样例:20输出样例:41.思路分析:本题是寻找输入范围原创 2021-04-08 09:37:56 · 73 阅读 · 0 评论 -
【PAT_C6】JAVA
Question:让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例 1:234输出样例 1:BBSSS1234原创 2021-04-07 16:40:55 · 142 阅读 · 2 评论 -
【PAT_C4】JAVA
Question:读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩 ... ... ...第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的原创 2021-04-06 13:53:30 · 78 阅读 · 1 评论 -
Java算法:控制机器人
今天遇到一个有点好玩的算法,就是通过一系列的指令来控制机器人的行走,最后要求定位机器人的准确位置。第一次写还写错了,改了一次才正确,觉得很有意思,就记下来了。机器人有4种指令:forward x,前进x米。 back x,先向后转,然后前进x米。 left x,先向左转,然后前进x米。 right x,先向右转,然后前进x米。现在把机器人放在坐标轴原点,起始朝向为...原创 2019-09-11 22:31:24 · 1533 阅读 · 0 评论 -
Java算法:回文数
一个正整数,如果交换高低位以后和原数相等,那么称这个数为回文数。比如 121121,23322332都是回文数,13,456713,4567 不是回文数。任意一个正整数,如果其不是回文数,将该数交换高低位以后和原数相加得到一个新的数,如果新数不是回文数,重复这个变换,直到得到一个回文数为止。例如,57变换后得到 132(57 + 75),132 得到 363(132 + 231),36336...原创 2019-09-08 17:13:39 · 11882 阅读 · 0 评论 -
Java算法之进制转换的奥义
在计算如此方便的今天,又有多少人知道在一个计算器后面有多少路要走吗?你的手指轻轻一点,后台就有成千上百条代码在帮你工作,今天,就来体验一下计算器中的进制转换功能。对于进制转换,大家并不陌生,在机器或者程序中常用的进制也就是二进制,八进制,十进制,十六进制...。而对于我们,其实接触的最多其实是十进制,二进制一般用于机器中表示,在数电,数逻,计算机组成,信息传输中等等使用频繁。关于其他进制的使用...原创 2019-09-07 01:02:44 · 378 阅读 · 0 评论 -
c++算法之500位的整数相乘
遇到这样一道算法题:题目计算两个非负整数 A,,B 的乘积,A,B 可能会很大;输入第一行输入一个非负整数 A。第二行输入一个非负整数 B。A,B 的长度不大于 500。输出格式输出A * B的值分析:题目的要求是两位500位以内的整数相乘,所以根据现有的数据类型,无法直接算出答案,需要另寻它径。初步分析,考虑最极限的情况,可以经过推理得到:比如2个两位数相...原创 2019-09-05 11:17:48 · 822 阅读 · 0 评论 -
Java算法之求某个子矩阵
题目给定一个 M*N 的矩阵MATRIX,要求在此矩阵中寻找一个非空子矩阵,并使得该矩阵的和最大。输入要求首先输入两个整数 M 和 N,分别表示矩阵的行和列,再在接下来依次输入矩阵的值MATRIX[I][J]样例:3 32 -4 1-1 2 14 -2 2输出输出一行,包含一个整数,表示 MATRIX中最大子矩阵的元素和样例:6分析当看到这...原创 2019-09-02 11:25:22 · 1838 阅读 · 0 评论