东华oj
值得学习的地方
韩豆豆小姐
今晚我不关心人类
展开
-
一招打通优先队列解决前K大/小 XXXX 的问题
前 K 个高频元素问题描述 :给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。输出时原创 2020-08-05 09:10:59 · 551 阅读 · 0 评论 -
栈 队列
**使括号有效的最少添加**** 问题描述 ????*给定一个由 ‘(’ 和 ‘)’ 括号组成的字符串 S,我们需要添加最少的括号( ‘(’ 或是 ‘)’,可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者它可以被写作 (A),其中 A 是有效字符串。给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。示例 1:输入原创 2020-07-17 15:58:39 · 99 阅读 · 0 评论 -
单链表(不带头结点)各种操作
主函数中根据需求直接调用就可。单链表结构定义struct ListNode{ int val; ListNode *next; ListNode() : val(0), next(NULL) {} ListNode(int x) : val(x), next(NULL) {} ListNode(int x, ListNode *next) : val(x), next(next) {}};各个子函数功能及说明ListNode *cr原创 2020-07-04 17:47:41 · 2994 阅读 · 0 评论 -
求二叉树两个结点的最近公共祖先
题目描述:一颗二叉树按顺序存储结构进行存储,设计一个算法,求编号i和j的最近公共祖先思路:已知:二叉树、顺序存储空的结点用“#”表示如果i,j所在位置的结点数据不是“#”,才有公共结点;若i<j,则j和i可能在同一层,或者比i的层数高,找j的双亲结点,j/2,再重复进行比较;若i>j,则i和j可能在同一层,或者比j的层数高,找i的双亲结点,i/2,再重复进行比较;直到i...原创 2020-04-20 11:47:33 · 1509 阅读 · 0 评论 -
顺序栈、顺序队列、链式队列的操作
//栈的操作#include<stdio.h>#include<stdlib.h>#include<math.h>#define STACK_SIZE 20//typedef int ElemType;typedef struct {int top;int data[STACK_SIZE];//这是一个数组}SqStack,*Stack;//...原创 2020-04-21 09:08:43 · 246 阅读 · 0 评论 -
二叉树的建立(C语言)
二叉树长这样的;#include<stdio.h>#include<stdlib.h>typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//创建一个二叉树,按照前序遍历的输入方式输入数据BiTree CreateBiTree(){ BiT...原创 2020-04-19 17:27:36 · 11012 阅读 · 10 评论 -
删除重复元素的思路(顺序存储、链式存储以及有序、无序的情况下高效算法)
一、有序有序情况下,不管顺序存储还是链式存储均比较简单:1.顺序存储:#include<stdio.h>#include<stdlib.h>int main(){ int *a; int m,n,i,j,k; scanf("%d",&m);//数组长度 n=m; a=(int*)malloc(sizeof(int)*m); i=0; whil...原创 2020-04-18 06:48:58 · 429 阅读 · 0 评论 -
双链表创建、遍历、按频度排列
题目:双链表的每个节点除有prior(前驱指针),next(后继指针),data(元素值)还增加了访问频度域(freq),在链表被启用前,其初始值均为0,每当链表进行一次Locate(L,x)运算时,令元素值为x的节点中的freq域值加1,并使此链表中结点按照频度非增的顺序排列,同时最近访问的结点排在频度相同的结点前面。#include<stdio.h>#include<s...原创 2020-04-16 08:53:02 · 524 阅读 · 0 评论 -
单链表各种操作集锦
各个子函数都已经测试通过,均是单链表常用的操作想使用哪个直接在主函数调用就行#include<stdio.h>#include<stdlib.h>typedef struct Node{ int data; struct Node *next;}LinkNode,*LinkList;void Create_T(LinkList head);void tr...原创 2020-04-15 17:19:04 · 169 阅读 · 2 评论 -
按照升序建立单链表
题目描述建立一个升序链表并遍历输出。输入描述:输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。输出描述:可能有多组测试数据,对于每组数据,将n个整数建立升序链表,之后遍历链表并输出。示例1输入43 5 7 9输出3 5 7 9总结这道题是要根据输入的整数建立一个升序链表,输入的时候并不是排好序的,要边建立链表边排序...原创 2020-03-28 15:07:03 · 1290 阅读 · 0 评论 -
判断是否为素数(高级)
一般的判断n是否为素数的方法:#include<stdio.h>#include<math.h>int main(){ int n,flag,i; flag=1; scanf("%d",&n); if(n>1){ //最小的素数是2 for(i=2;i<=(int)sqrt(n);i++){ if(0==n%i){ f...原创 2020-03-05 11:02:33 · 375 阅读 · 0 评论 -
单链表的基本操作
#include<stdio.h>#include<stdlib.h>typedef struct Lnode{ int data; struct Lnode *next;}LinkNode,*LinkList;/* 用头插法建立一个单链表*/void CreateList_tou(LinkList head){ LinkList p; int num;...原创 2020-03-05 10:33:38 · 125 阅读 · 0 评论 -
70--86
70 回文数#include<stdio.h>#include<stdlib.h>#include<string.h>//将n进制转化为10进制整数int trans(char str[],int n,int len){ int i,sum,x; sum=0;x=1; for(i=len-1;i>=0;i--){ sum+=(str[i]-'0')*x; x*=n; } return sum; }//判断字符串是否回文int hu原创 2020-05-15 20:33:00 · 362 阅读 · 0 评论 -
51---64
51 质数的后代#include<stdio.h>#include<math.h>int sushu(int x){ int i; for(i=2;i<=sqrt(x);i++){ if(0==x%i){ return 0; } } return 1;}int main(){ int n,num,i,flag; scanf("%d",&n); while(n--){ flag=1; scanf("%d",&am原创 2020-05-15 20:33:22 · 466 阅读 · 0 评论 -
50 彩票
#include<stdio.h>#include<stdlib.h>int main(){ int **a; int b[7]={0};//用来存放奖状等级的个数.b[i]代表i等奖的个数,例如b[1]一等奖的个数 int n,i,j,count,k; scanf("%d",&n); n++; a=(int**)malloc(sizeof(int*)*n); for(i=0;i<n;i++){ a[i]=(int*)malloc(sizeof.原创 2020-05-15 20:33:36 · 453 阅读 · 0 评论 -
49 实数相加
利用C也能做出来答案,就是确实麻烦,需要考虑的因素比较复杂,两数同为整数(常见的大数加法型),一个为整数一个为小数(小数保留,整数部分变成大数相加即可),两个均为小数(找到‘.’的位置很关键,还要考虑小数部分最终是否有进位现象还要加到整数部分)可能需要好久,在网上找到了bidDecimal类,直接相加即可,特别nice!import java.math.BigDecimal;import java.util.Scanner;public class Main { public static vo.原创 2020-05-15 20:33:53 · 298 阅读 · 0 评论 -
48 身份证号码升级
根据要求一步一步进行做题就可#include<stdio.h>#include<ctype.h>#include<string.h>int main(){ char str[20]; int len,i,k,j,sum; int a[21]={7, 9,10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; char res[12]="10x98765432"; gets(str); len=strlen(.原创 2020-05-15 20:34:06 · 247 阅读 · 0 评论 -
47 Anagrams问题
#include<stdio.h>#include<ctype.h>#include<string.h>int main(){ char str1[81],str2[82]; int a[26]={0};int b[26]={0}; int i,len1,len2;#if(0) for(i=0;i<26;i++){ a[i]=0; b[i]=0; }#endif gets(str1); gets(str2); len1=strl.原创 2020-05-15 20:34:19 · 183 阅读 · 0 评论 -
东华大学研究生复试------45 笨小猴
本质不难,思路要清晰。统计字母出现的次数--》找出出最多和最少的次数,并计算差----》判断差是否为素数#include<stdio.h>#include<math.h>#include<string.h>//判断一个数是否为素数int sushu(int x){ int i; if(0==x || 1==x) return 0; //flag=1; for(i=2;i<=sqrt(x);i++){ if(0==x%i){ ..原创 2020-05-15 20:36:16 · 519 阅读 · 6 评论 -
44 不同单词个数统计
这道题主要在于 根据空格来截取单词strtok函数的应用,类似于进阶求最长的单词#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char str[501]; char *p[501],*temp;//*p[501]为指针数组,用来存放不同字符串(首地址) int i,j; gets(str); temp=strtok(str," ");//stotok返回的是字符指.原创 2020-05-15 20:36:37 · 219 阅读 · 0 评论 -
小数第n位
#include<stdio.h>int main(){ int a,b,n,i; scanf("%d%d%d",&a,&b,&n); while(a>b){ a%=b; } i=0;//计算小数点后的第i位 //a<b,若想得到小数点后的位数则需a*10 不断取商即可 while(i<=n+2){ a*=10; i++; if(i>=n && i<=n+2){//输出符合题目要求的位数 .原创 2020-05-15 20:36:52 · 199 阅读 · 0 评论 -
东华研究生复试------35 幸运偶数
问题描述 :从键盘上输入一个整数(长度不大于200),将其各位上为奇数的数字去除,剩余的数字按数字大小从大到小排序,组成一个新的数,并输出到屏幕上。输入说明 :你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据,每组测试数据仅占一行,每行有一个整数,整数的长度不大于200。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后...原创 2020-04-30 20:48:18 · 697 阅读 · 0 评论 -
东华研究生复试------32 模拟登录 33 单词统计 34 倒数和
问题描述 :编写程序模拟简单的密码登录(正确的密码是123456),首先从键盘输入用户名(用户名随意,不超过10个字符)然后输入密码,若密码正确(即为123456)则给出问候语。若密码不正确,则给出错误提示,并允许再次输入,直到输入正确的密码或输入0结束。输入说明 :用户名,和若干次密码。输出说明 :若密码正确则输出:Hello 用户名换行并退出若错误则输出:Wrong P...原创 2020-04-30 20:43:27 · 775 阅读 · 0 评论 -
东华研究生复试------31 输出米字形
问题描述 :根据输入的正整数n ,米字形由一个(2n-1)*(2n-1)的矩阵组成,矩阵包含从大写A开始的n个字母 例如:n=3时,包含A,B,C;n=4时,包含A,B,C,D。 矩阵的正中间为n个字母中字典序最大的那个,从这个字母开始,沿着西北、正北、东北、正西、正东、西南、正南、东南八个方向各有一条由大写字母组成的直线。并且直线上的字母按字典序依次减小,直到大写字母A。 矩阵的其...原创 2020-04-30 20:38:14 · 397 阅读 · 0 评论 -
考研复试------18 黑色星期五
问题描述 :有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。 说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1...原创 2020-04-28 20:28:53 · 303 阅读 · 0 评论 -
研究生复试------21 谁是老二?
问题描述 :一维数组中存储不超过100个整型数据,请找出其中第二大的元素,输出这些元素的值以及它们的下标。注意,由于元素值可能相同,因此具有最大值的元素个数可能不只一个,第二大的元素是比它们小的那些元素。输入说明 :用户可输入多组数据,每组数据由两行组成:第一行:数组元素的个数n第二行:n个数组元素,由空格分隔输出说明 :对于每组输入,输出一行,包含第二大的元素的值以及它们的下标(...原创 2020-04-28 16:35:03 · 1235 阅读 · 2 评论 -
研究生复试------20 整除的尾数
问题描述 :一个整数,只知道前几位为a,不知道末二位,被另一个整数b除尽了(即没有余数),那么该数的末二位该是什么呢?输入说明:输入两个整数a,b(0<a<10000, 10<b<100)输出说明 :将满足条件的所有尾数在一行内输出,格式见范例。两个尾数之间空一格,行首与行尾没有空格。数组的引用是地址引用,学习引用方法#include <stdio.h&...原创 2020-04-28 16:29:09 · 256 阅读 · 0 评论 -
研究生复试------17 质因数
问题描述 :将一个正整数N(1<N<32768)分解质因数。例如,输入90,打印出90=233*5。输入说明 :输入一个正整数输出说明 :按照范例输出。其中的质因数的输出顺序按照从小到大的顺序。如果输入的整数本身是质数,则输出形式为:3=3输入范例:66输出范例:66=2311#include<stdio.h>#include<math.h...原创 2020-04-28 16:22:32 · 249 阅读 · 0 评论 -
研究生复试------16 二进制数数
问题描述 :给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。 如5的二进制为101,包含2个“1”。输入说明 :第一行包含2个数L,R1<=L<=R<=100000;输出说明 :一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。输入范例2 3输出范例3和上面的求位数一样,就是不要傻乎乎的求出来二进制表示是什...原创 2020-04-28 16:18:00 · 176 阅读 · 0 评论 -
研究生复试------15 连续正整数的和
问题描述 :78这个数可以表示为连续正整数的和,1+2+3+…12,18+19+20+21,25+26+27。 输入一个正整数 n(<=10000) 输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+1)+…+b=n。 对于多种表示法,a小的方案先输出。输入说明 :输入一个正整数 n(<=10000)输出说明 :输出 m 行(n有m种表示法),...原创 2020-04-28 16:13:30 · 239 阅读 · 0 评论 -
研究生复试------14 阿尔法乘积
问题描述 :计算一个整数的阿尔法乘积。对于一个整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。例如:4018224312的阿尔法乘积等于8,它是按照以下的步骤来计算的: 4018224312 → 418224312 → 3072 → 372 → 42 → 4*2 → ...原创 2020-04-28 16:10:58 · 451 阅读 · 0 评论 -
研究生复试------12 学做菜
问题描述 :涛涛立志要做新好青年,他最近在学做菜。由于技术还很生疏,他只会用鸡蛋,西红柿,鸡丁,辣酱这四种原料来做菜,我们给这四种原料标上字母A,B,C,D。 涛涛现在会做的菜有五种: 1、 西红柿炒鸡蛋 原料:AABDD 2、 酸辣鸡丁 原料:ABCD 3、 宫保鸡丁 原料:CCD 4、 水煮西红柿 原料:BBB 5、 怪味蛋 原料:AD 这天早上,开开去早市给涛涛...原创 2020-04-28 16:06:20 · 699 阅读 · 1 评论 -
研究生复试------10 求二进制表示位数
问题描述 :给定一个十进制整数,返回其对应的二进制数的位数。例如,输入十进制数9,其对应的二进制数是1001,因此位数是4。输入说明 :输入一个整数,大小在int表示范围内。输出说明 :一个整数让计算位数,位数!!!!别搞得太复杂#include <stdio.h>int main(){ int n,i,count; scanf("%d",&n); co...原创 2020-04-28 15:59:35 · 340 阅读 · 0 评论 -
研究生复试------9 数对
问题描述 :编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数。输入说明 :输入只有一行,即一个整数。输出说明 :输出有若干行,每一行是一个乘法式子。(注意:运算符号与数字之间有一个空格)#include <stdio.h>#include<math.h>int main(){ int n,i; scanf("%d",&...原创 2020-04-28 15:57:37 · 115 阅读 · 0 评论 -
研究生复试------8 初级算术
问题描述 :小学一年级学生正在学习多位数加法,从右到左每次一位数字。在运算过程中,进位对学生来讲是个难点。你的工作是统计每组加法运算的进位次数,老师根据你的统计结果就可以评估这些题目的难度。输入说明 :每行输入有两个正整数。参加运算的数和运算结果保证在32位整数范围内。输出说明 :对每行输入都有一行输出,输出内容与两个正整数做加法运算时产生的进位次数有关,分三种情况:1、没有进位2...原创 2020-04-28 15:56:08 · 573 阅读 · 0 评论 -
研究生复试------7 幸运数字的因子个数
问题描述 :小李非常喜欢数字4和7,看到一个数字他就想快速计算出因子里面含有几个4和7,但是智商捉急的他总是要算很久,喜欢编程的你能够帮助他吗?比如数字112,因为112=447,所以知道它的因子中包含2个4和1个7。再比如数字56,因为56=247,所以知道它的因子中包含1个4和1个7。而数字30不能被4或7整除,所以它的因子中包含0个4和0个7。输入说明 :每组数据包含一行,每行包...原创 2020-04-28 15:48:28 · 1450 阅读 · 2 评论 -
研究生复试-------4.求多少天
问题描述 :按月、年的顺序读入一个日期,输出该月一共有几天。输入说明 :你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据由一行组成,每行为两个正整数m、y,分别表示月、年。输出说明 :对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的文本终端)依次输出一组对应的答案:其中包含一个整数,表示输入的月份一共有几天,两组数据之间没有多余的空行。这道题没啥...原创 2020-04-28 15:44:08 · 180 阅读 · 0 评论 -
研究生复试------3.找圆心
问题描述 :有一个圆心以及圆上的两个点,输入它们的x座标和y座标,判断哪个点是圆心。比如输入三个点座标(第一行是第1个点,第二行是第2个点,第三行是第3个点):0 03 00 -3则可知,第一个点到第二个点的距离和它到第三个点的距离相等,因此可知第1个点是圆心(经过计算可知第2个点、第3个点不是圆心)。输入说明 :共输入3行,每行是一个点的x座标和y座标(为简单起见,输入的都是整数...原创 2020-04-28 15:41:22 · 247 阅读 · 0 评论 -
研究生复试------时间转换
问题描述 :给定一个t,将t秒转化为DD days HH:MM:SS的形式,表示DD天HH小时MM分钟SS秒。输入说明 :输入一个数t,表示时间的秒数。0<=t<1002460*60。输出说明 :输出格式为:86 days 3:2:12表示86天3小时2分12秒。再比如:1 days 1:5:120 days 0:25:32 (天、时、分、秒的值即使是0,也需要输...原创 2020-04-28 15:31:05 · 422 阅读 · 0 评论 -
东华研究生复试------36 转化成十进制,37,38,39
问题描述 :编写一个程序,将一个2~20以内任意进制数转换成十进制。这些数据由数字0-9,大写字母A-J组成,其中A=10,B=11……J=19。例如16进制数5A转换为十进制数90(90=516+101)。输入说明 :程序需要输入多组数据,每组数据一行,每行有两个数,用空格隔开,分别表示当前进制数和被转换的数据。输入数据十进制数大小不会超过10000,例如:16 5A 表示将16进制数5A...原创 2020-04-30 20:53:10 · 1206 阅读 · 3 评论