
基础算法
hustfc
这个作者很懒,什么都没留下…
展开
-
c语言二叉排序树,数组模拟,二叉树插入法
题目描述二叉排序树,也称为二叉查找树。可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均不大于根节点的关键字值; 2. 若右子树非空,则右子树上所有节点关键字值均不小于根节点的关键字值; 3. 左、右子树本身也是一颗二叉排序树。 现在给你N个关键字值各不相同的节点,要求你按顺序插入一个初始为空树的二叉排序树中,每次插入后成功后,求相应原创 2018-01-21 13:02:43 · 1376 阅读 · 0 评论 -
字符串链接
#include #include #include int main(int argc, const char * argv[]) { char a[200]; while(gets(a) != NULL ){ int space = 0; while(a[space] != ' ') space ++; for(int i原创 2018-01-21 18:28:46 · 269 阅读 · 0 评论 -
成绩排序
题目:有 N 个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名 字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出 N 个学生排序后的信息。输入:测试数据有多组,每组输入第一行有一个整数 N(N年龄(整形数)、成绩(小于等于 100 的正数)。 输出:输出将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。然后 输出学生信息,按照如下格式原创 2018-01-14 11:03:15 · 461 阅读 · 0 评论 -
日期差值问题
题目 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们 之间的天数为两天输入 有多组数据,每组数据有两行,分别表示两个日期,形式为 YYYYMMDD输出 每组数据输出一行,即日期差值样例输入 20110412 20110422样例输出 11代码#include #define LEAPYEAR(x) x % 100 != 0 && x % 4 =原创 2018-01-14 17:08:39 · 307 阅读 · 0 评论 -
利用hash统计分数
题目描述读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。输入测试输入包含若干测试用例,每个测试用例的格式为第 1 行:N第 2 行:N 名学生的成绩,相邻两数字用一个空格间隔。第 3 行:给定分数当读到 N=0 时输入结束。其中 N 不超过 1000,成绩分数为(包含)0 到 100之间的一个整数。输出对每个测试用例,将获得给定分数的学生人数原创 2018-01-15 10:35:01 · 609 阅读 · 0 评论 -
c语言输入日期确定星期
题目描述We now use the Gregorian style of dating in Russia. The leap years are years with number divisible by 4 but not divisible by 100, or divisible by 400.For example, years 2004, 2180 and 2400 a原创 2018-01-14 21:31:38 · 1511 阅读 · 0 评论 -
c语言快速排序与冒泡排序
冒泡#include #include void Swap(int * a,int * b){ int t; t = *a; *a = *b; *b = t;}int main(){ int number; scanf("%d",&number); int a[number]; int i,j; for原创 2018-01-15 11:01:38 · 549 阅读 · 0 评论 -
利用hash进行排序输出
题目描述给你 n 个整数,请按从大到小的顺序输出其中前 m 大的数。输入 每组测试数据有两行,第一行有两个数 n,m(01000000),第二行包含 n 个各不相同,且都处于区间[-500000,500000]的整数。输出对每组测试数据按从大到小的顺序输出前 m 大的数。样例输入5 33 -35 92 213 -644样例输出213 92原创 2018-01-15 11:28:31 · 1286 阅读 · 0 评论 -
c语言实现加法器,高精度计算a + b
题目描述实现一个加法器,使其能够输出a+b的值。输入输入包括两个数a和b,其中a和b的位数不超过1000位。输出可能有多组测试数据,对于每组数据,输出a+b的值。样例输入2 610000000000000000000 10000000000000000000000000000000样例输出81000000000001000000000原创 2018-01-23 21:48:24 · 6212 阅读 · 0 评论 -
c语言一个函数实现快速排序
题目描述 对输入的n个数进行排序并输出。输入 输入的第一行包括一个整数n(1=n<=100) 接下来的一行包括n个整数。输出可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。每组测试数据的结果占一行。样例输入41 4 3 2样例输出1 2 3 4 代码#include void Quic原创 2018-01-23 21:51:17 · 969 阅读 · 0 评论 -
c语言实现特殊排序
题目描述输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。输入输入第一行包括1个整数N,1N1000,代表输入数据的个数。接下来的一行有N个整数。输出可能有多组测试数据,对于每组数据,第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。第二行将排序的结果输出。样例输入41 3 4 2样例输出原创 2018-01-23 21:53:21 · 438 阅读 · 0 评论 -
二叉树先序遍历中序遍历建立二叉树然后后序遍历
题目描述二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。输入两个原创 2018-01-23 21:43:53 · 698 阅读 · 0 评论 -
输出梯形
题目描述输入一个高度 h,输出一个高为 h,上底边为 h 的梯形。输入一个整数 h(1=h输出h 所对应的梯形。样例输入4样例输出 **** ****** ******************代码#include int main(int argc, const char * argv[]) {原创 2018-01-16 10:46:08 · 318 阅读 · 0 评论 -
二分查找学生信息
题目描述输入 N 个学生的信息,然后进行查询。输入输入的第一行为 N,即学生的个数(N1000)接下来的 N 行包括 N 个学生的信息,信息格式如下:01 李江 男 2102 刘唐 男 2303 张军 男 1904 王娜 女 19然后输入一个 M(M10000),接下来会有 M 行,代表 M 次查询,每行输入一个学号,格式如下:02 03 01 04原创 2018-01-16 12:39:40 · 1729 阅读 · 0 评论 -
c语言矩阵转置
#include int main(int argc, const char * argv[]) { int n; while(scanf("%d", &n) != EOF){ int a[n][n]; for(int i = 0;i < n;i ++){ for(int j = 0;j < n;j ++){原创 2018-01-18 13:56:03 · 14568 阅读 · 0 评论 -
统计单词
题目描述 编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。 (凡是以一个或多个空格隔开的部分就为一个单词) 输入描述:输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。输出描述:可能有多组测试数据,对于每组数据, 输出字符串中每个单词包含的字母的个数。示例1 输入hello原创 2018-01-18 14:25:32 · 358 阅读 · 0 评论 -
ip地址是否合法
#include int main(){ int n; while(scanf("%d", &n) != EOF){ int ip[n][4]; for(int i = 0;i < n;i ++){ scanf("%d.%d.%d.%d",&ip[i][0],&ip[i][1],&ip[i][2],&ip[i][3]);原创 2018-01-18 16:11:24 · 444 阅读 · 0 评论 -
求矩阵最大两个数
input接下来的四行每行包括五个整数。代表一个四行五列的矩阵,矩阵元素全部是整数。output可能有多组测试数据,对于每组数据,按照样例输出的格式将每列最大的两个数输出,如果最大的两个数中的一个数在这一列中有多个相同的值,则行值取行值小的那一个。输出时要保留原矩阵的行列顺序,即在原矩阵中行值小的,在输出矩阵中的行值依然小。code#include转载 2018-01-26 21:55:25 · 518 阅读 · 0 评论 -
二叉排序树
题目描述输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入输入第一行包括一个整数n(1=n<=100)。接下来的一行包括n个整数。输出可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。输入中可能有重复元素,但是输出的二叉树遍历序列原创 2018-02-03 17:03:01 · 151 阅读 · 0 评论 -
1008. 数组元素循环右移问题 (20)
一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N ( 1<=N&l...原创 2018-02-09 20:38:00 · 262 阅读 · 0 评论 -
1009. 说反话 (20)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。 输入样例:Hello World Here I Come...原创 2018-02-09 21:40:57 · 142 阅读 · 0 评论 -
顺转数组(华科机试真题)
顺转数组 输入一个数字 n,输出一个 n 阶顺转数组 如输入:5 输出: 12345 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9#include <stdio.h>int arr[100][100];void fill(int left,int right,int up,int down,in...原创 2018-03-06 20:15:02 · 513 阅读 · 0 评论 -
最长回文子串(2013华科机试)
最长子回文串(40 分)、 输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串连续出现的字符串片段。 回文的含义是:正着看和倒着看是相同的,如 abba 和 abbebba。在判断是要求忽略所有的 标点和空格,且忽略大小写,但输出时按原样输出(首尾不要输出多余的字符串)。输入字 符串长度大于等于 1 小于等于 5000 样例输入 She say:Madam,I’m Adam. 样例...原创 2018-03-06 21:05:30 · 314 阅读 · 0 评论 -
c语言十进制转二进制,八进制的最快方法
用递归!!#include &lt;stdio.h&gt;void change10_2(int n){ if (n == 0) return; else { change10_2(n / 2); printf("%d", n % 2); }}int main(int argc, const cha...原创 2018-03-07 20:23:35 · 9842 阅读 · 2 评论 -
并查集求解联通分量个数(畅通工程(九度 OJ 1012))
题目描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交 通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还 需要建设多少条道路? 输入: 测试输入包含若干测试用例。每个测试用例的第 1 行给出两个正整数,分别 是城镇数目 N ( < 1000 )和道路数目 M;随后的 M...原创 2018-02-28 17:33:03 · 388 阅读 · 0 评论 -
畅通工程,最小生成树(九度 OJ 1017)
题目描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。输入: 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2...原创 2018-03-01 20:22:21 · 228 阅读 · 0 评论 -
c语言 整型 字符 字符串之间的转换
整型转字符 int n; scanf("%d",&n); char c; c = (char)n; printf("%c\n",c);输入65 输出A,以为A的ascii码为65字符转整型 不能强制类型转换//直接相减 char c; scanf("%c",&c); int n; n...原创 2018-03-06 17:41:50 · 3099 阅读 · 0 评论 -
OJ数串 *c++ python*
题目描述设有n个正整数,将他们连接成一排,组成一个最大的多位整数。如:n=3时,3个整数13,312,343,连成的最大整数为34331213。如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。输入描述有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N&lt;=100),第二行包含N个数(每个数不超过1000,空格分开)。输出...原创 2018-06-10 16:44:33 · 200 阅读 · 0 评论 -
OJ 树的高度 *C++ python*
题目描述 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度输入描述 输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述 输出树的高度,为一个整数输入 50 10 21 3...原创 2018-07-18 10:47:27 · 412 阅读 · 0 评论 -
OJ句子反转*python C++*
题目描述 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-&gt; “mi xiao hell输入描述 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述 对于每个测试示例,要求输出句子中单词反转后形成的句子...原创 2018-07-18 15:30:39 · 241 阅读 · 0 评论 -
OJ电话号码分身 *C++ PYTHON*
题目描述 继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能: (&quot;ZERO&quot;, &quot;ONE&quot;, &quot;TWO&quot;, &quot;THREE&quot;, &quot;FOUR&quot;, &quot;FIVE&quot;,原创 2018-07-19 09:39:08 · 269 阅读 · 0 评论 -
OJ水仙花数 *C++ python*
题目描述 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身, 比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。输入描述 输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。输出描述 对于每...原创 2018-07-20 10:23:38 · 581 阅读 · 0 评论 -
【leetcode】两个排序数组中的中位数(Median of Two Sorted Arrays)【python】
需要注意两点可能存在一个数组遍历完毕的情况,这时候只需要遍历另外一个数组数组可能为空,必须事先进行判断,否则会越界 算法思想 一次遍历两个数组,将较小的加入到新数组sums中,这样sums就是有序的,跟合并两个有序的链表的思想一样class Solution: def findMedianSortedArrays(self, nums1, nums2): ...原创 2018-08-30 16:25:44 · 1004 阅读 · 0 评论 -
【leetcode】 两数之和(tow sum)【c++ python】
C++class Solution {public: vector&lt;int&gt; twoSum(vector&lt;int&gt;&amp; nums, int target) { vector&lt;int&gt; indexs; for(int i = 0;i &lt; nums.size();i ++){原创 2018-08-29 16:21:03 · 215 阅读 · 0 评论 -
【leetcode】两数相加(Add Two Numbers)【python c++】
python#Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def addTwoNumbers(self, l1, l2): "...原创 2018-08-30 09:10:56 · 205 阅读 · 0 评论 -
【leetcode】Z字形变换【python】
坑1:二维数组创建错误:具体参考上一篇博客 坑2:numRows=1的情况下,步长设置错误 if numRows == 1: return sAC解答class Solution: def convert(self, s, numRows): &quot;&quot;&quot; :type s: s...原创 2018-09-04 21:15:11 · 369 阅读 · 0 评论 -
【leetcode】无重复字符的最长子串(Longest Substring Without Repeating Characters)【python】
题目链接:无重复字符的最长子串pythonclass Solution: def lengthOfLongestSubstring(self, s): &quot;&quot;&quot; :type s: str :rtype: int &quot;&quot;&quot; max = 0 a原创 2018-08-30 10:18:27 · 126 阅读 · 0 评论 -
【leetcode】反转整数(Reverse Integer)【python】
class Solution: def reverse(self, x): """ :type x: int :rtype: int """ if x == -2 ** 31: return 0 reversestr = '' if x &am原创 2018-09-09 14:14:07 · 545 阅读 · 0 评论 -
【leetcode】字符串转整数(String to Integer (atoi))【python】
题目链接 def isnum(x): if ord(x) &gt;= ord('0') and ord(x) &lt;= ord('9'): return 1 else: return 0class Solution: def myAtoi(self, str): """ :type str: st...原创 2018-09-09 15:28:18 · 201 阅读 · 0 评论 -
【leetcode】回文数(Palindrome Number)【python】
题目链接 class Solution: def isPalindrome(self, x): """ :type x: int :rtype: bool """ string = str(x) i, j = 0, len(string) - 1 while i != ..原创 2018-09-09 20:35:22 · 228 阅读 · 0 评论