- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 罗马字符转换数字
题目描述:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1;V 5;X 10;L 50;C 100;D 500;M 1000;例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值...
2021-08-24 15:53:16 923
原创 西安华为OD面试经验(德科)
背景:本科某双非邮电软件专业,二战冲985失败,随便写的简历挂boss上,hr电话联系帮我约的机考(华为od网络风评很差,这一点还是hr告诉我这个初入社会的学生党的,态度挺诚恳,我也只是本着随便试试的态度去的)。机考是5.7号,技术一面是5.11号,技术二面5.14号,两三天后主管面,之后就是两周左右的审核环节,到最终拿到offer,不到一个月时间吧,其中面试环节要说,也就是一周时间,审核比较花时间。流程:机考——性格测试——技术一面——技术二面——主管面——薪资福利待遇通知——体检入职..
2021-06-14 00:58:03 33592 31
原创 数组中重复的数字
题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000思路:来自于剑指offer,申请一个初始元素全为0的数组arr[],遍历原先数组nums[],用nums[]存的值,来对应申请的arr[]的下标的值,每出现一次.
2021-05-09 23:57:36 278
原创 求解平方根,立方根不使用库函数(牛顿迭代法)
题目描述计算一个数字的立方根,不使用库函数。保留一位小数。输入描述:待求解参数,为double类型(一个实数)输出描述:输入参数的立方根。保留一位小数。输入216输出6.0思想:求立方根:令f(x) = x^3-a = 0,其中a为输入数,解出x即为a的立方根,利用牛顿迭代法,让f(x)在X0处一阶泰勒展开,即f(x) = f(x0)+f`(x0)(x-x0) = x0^3-a+3*x0^2*(x-x0)=0;得到x = x0+(a-x0^3)/(3*x0
2021-05-03 22:58:12 483
原创 删除字符串中出现次数最少的字符
题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。注意每个输入文件有多组输入,即多个字符串用回车隔开输入描述:字符串只包含小写英文字母,不考虑非法输入,输入的字符串长度小于等于20个字节。输出描述:删除字符串中出现次数最少的字符后的字符串。示例1输入abcddaabcddd输出ddaaddd解题思路: 大致思路是将一串字符存到一个数组中,再...
2021-05-01 17:46:42 1751
原创 打印杨辉三角
题目描述:打印一个10行的杨辉三角思路:1.用二维数组存储值;2.遍历二维数组(Java)代码实现: public static void main(String[] args) { // TODO Auto-generated method stub /** * 打印10行的杨辉三角; **/ //1.声明二维数组 int[][] yang = new int[10][]; //2.给数组赋值 for(int i=0;i<yang.length;i
2021-03-27 15:15:28 105
原创 用栈实现回文串检测
设计思想:栈具有先进后出的特性,将字符串str的一半长度字符入栈,再让其依次出栈,对比出栈序列字符是否与剩下一半长度字符依次相等。需要注意字符个数,分奇数偶数。bool ishuiwen(string str){ int s[100]; int top=-1,mid=str.length()/2-1; //入栈; for(int i=0;i<=mid;++i){ top++; s[top] = str[i]; } int next; if(str.length()%2==0
2020-12-19 00:14:26 386 1
原创 递归实现回文串的判断
//函数实现;bool find(const char *s,int n){ if(n<=1) return true;//递归边界条件(退出条件); else if(s[0]==s[n-1]) return find(s+1,n-2);//依次判断对应位置上的字符是否相等,递归调用,每次字符串长度减2; else return false;}int main(){ string s="abccba"; string ss="a bc c b a"; int len = ss.
2020-12-18 23:47:23 1029 1
原创 用两个栈模拟队列的伪代码实现
已知条件:栈S1与栈S2,有判断栈满函数Isfull(),判栈空IsEmpty(),入栈push(),出栈pop();用这些基本操作来实现EnQueue(),DeQueue(),IsQueueEmpty()函数;基本思路:栈具有先进后出的特性,所以我们用s1来存储进队的元素,用s2来出队,在这个过程中,由于s1出栈的数据是逆序的,再压入s2再次逆序,那么从s2输出的数据就是正常顺序的,用这样的思路模拟一个队列。需要注意的点是:模拟入队和出队的时候,需要判断s1是否已满,以及s2是否为空,当s1满
2020-12-01 00:01:50 900
原创 数据结构—拓扑排序
问:什么是拓扑排序,有什么用,应用场景是什么?首先搞清楚什么是AOV网,如果用DAG(有向无环图)来表示一个工程,用<Vi,Vj>来表示活动Vi必须先于Vj进行的这样一种关系,我们把这种有向图称为顶点表示活动的网络,记作AOV网。拓扑排序:有一个有向无环图的顶点组成的一个序列,必须满足如下条件:①每个顶点都必须出现,且只能出现一次;②如果顶点A在序列中的位置处在B的前面,那么在图中不存在由B到A的路径。注意拓扑排序序列并不唯一,每个AOV网都可以有一个或者多个拓扑序列。.
2020-11-22 19:53:39 479
原创 图的连通,连通图,连通分量,强连通分量
1.对于无向图而言,如果图中的某两个点,例如:存在W到V的路径,那么我们说w和v是连通的;进一步如果图中任意两点之间都是存在路径的,那么我们说这个是连通的,即可称为连通图。2.连通子图:设G=(V,E)和G`=(V`,E`),如果V`是V的子集,并且E`是E的子集,那么称G`是G的子图。如果子图是连通的,那么就是连通子图,这不难理解。(需要注意,并不是你随便从G=(V,E))中挑的V的子集V`跟E的子集E`,就能构成一个子图,因为有可能挑的边V跟顶点E没有关系,那也就构不成一个图了)3.极大连通子图
2020-11-21 18:55:42 7356
原创 40-1
编写一个函数,使得输入的字符串反序保存,在主函数中输入和输出;思路: 编写函数convert()来求逆,string类存字符串,然后依次交换对应位置上的字符,最后输出;代码:#include<iostream>#include<string>using namespace std; #define max 20//设置两个指针,分别指向首尾,当两个指针相遇的时候,意味着遍历完了字符串;void convert(string &str){ int ..
2020-10-26 23:05:43 99
原创 有序顺序表插入数据X
思路:设顺序表L为递增有序,从L的终端结点,往前遍历L,找到插入x的位置,插入x,将大于x的元素往后移动一个单位即可;另外,在往前扫描的过程中,可以边扫描边遍历。代码:typedef struct{ ElementType data[100]; int length;}SeqList;//顺序表存储结构;void InsertSeqList(SeqList L,ElementType x){ int i;//i指示位置; for(i=L.length;i>0&&
2020-10-23 19:17:19 3500 1
原创 有序单链表的合并
设有链表A和链表B分别有序,现需要将两链表合并成一条有序链表。思路:开辟一条新链表C,分别遍历A、B按次序插入到C即可,需要注意长度问题,当A或B遍历完,另一条未遍历完,此时将未遍历完的链表直接接到C尾部即可。代码:typedef struct node{ int data; struct node *next;}Lklist;void MergeLklist(Lklist *A,Lklist *B,Lklist *&C){ Lklist *pa,*pb,*t; //pa,
2020-10-22 23:52:05 1524
原创 筛选法求100以内的素数
题目:利用筛选法求100以内的素数。拓展:筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这
2020-09-25 22:58:54 2169
原创 PAT 1026 程序运行时间
题目描述:要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用 clock(),获得一个时钟打点数 C1;在f执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数...
2020-06-20 23:43:24 104
原创 PAT 1023 组个最小数
题目描述:给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。输出格式:在一行
2020-06-08 21:23:34 148
原创 PAT 1022 D进制的A+B
题目描述:输入两个非负 10 进制整数A和B(≤230−1),输出A+B的D(1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数A、B和D。输出格式:输出A+B的D进制数。输入样例:123 456 8输出样例:1103思路分析:这道题主要就是考的进制转换,在编程中进制转换应该属于必会的技能。发现一个进制转换总结的很棒的网站,分享一下。C++中的各种进制转换#include<iostream...
2020-06-07 21:51:03 189
原创 PAT 1020 月饼
题目描述:月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿
2020-06-05 21:54:06 238
原创 PAT 1014 福尔摩斯的约会
题目描述:大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四;第 2 对相同的字符是E,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母A到...
2020-05-16 22:03:17 205
原创 PAT 1013 数素数
题目描述:令Pi表示第i个素数。现任给两个正整数M≤N≤104,请输出PM到PN的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从PM到PN的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 1...
2020-05-15 17:51:25 1579 1
原创 PAT 1012 数字分类
题目描述:给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A1= 能被 5 整除的数字中所有偶数的和; A2= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算n1−n2+n3−n4⋯; A3= 被 5 除后余 2 的数字的个数; A4= 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位; A5= 被 5 除后余 4 的数字中最大数字。输入格式:每个输入包含 1 个测试用例。每个测试...
2020-05-14 12:00:34 139
原创 PAT 1010 一元多项式求导
题目描述:设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为0 0。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 0思路分析:题目.
2020-05-13 22:46:55 369
原创 PAT 1008 数组元素循环右移问题
问题描述:一个数组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个整数,之间用空格分隔。输出格式:在一行中输出
2020-05-12 11:29:39 659
原创 PAT 1007 素数对猜想
题目描述:让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。输入样例:20输出样例:4分析:由题目中可以看出,这一对必是素数,且相差
2020-05-09 23:22:33 193
原创 PAT 1006 换个格式输出整数
题目:让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(<10),换个格式来输出任一个不超过 3 位的正整数。例如234应该被输出为BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出n。输入样例 1:234输出样例 1:BBSSS1234输入样...
2020-05-08 23:32:17 81
转载 PAT 1003 我要通过!
PAT 1003 我要通过!放的这个链接已经很清楚的说明了这道题的思路,下面我放出我自己的具体实现代码,解题思路完全是一样的。仅供参考:#include<bits/stdc++.h>#include<string>using namespace std; int main() { int n; cin >> n;//n是输入字符串的个数...
2020-05-06 09:46:42 128
原创 c++中的int与char之间转换问题
在平时的acm中很容易见到数据类型需要在数字和字符之间转换的问题,我以一个简单的编程题来说一下这个问题。问题描述:读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有 1 空...
2020-05-05 10:57:55 2098
原创 如何禁止电脑访问某个网站
1.点击计算机;2.打开路径“C:\Windows\System32\drivers\etc”文件夹;3.用记事本打开一个hosts的文件;4.在最下面一行加上:127.0.0.1 “要禁止访问的网站域名或者ip”; 例如:127.0.0.1 www.baidu.com5.最后保存关掉文件即可。再去用浏览器访问这个网站就显示为无法连接。...
2020-04-19 12:34:04 11494 2
原创 指针
简单说一下数据结构的指针类型;通俗来说,指针也只是种数据类型而已,但是与int,float,char等不同的是,指针是可以存储一个变量的地址的。而指针之所以叫指针是因为它可以存储地址,当我们知道了一个变量的地址后,就可以说是这个指针是指向某个变量的。int a = 1;int *p;//这里就是定义了一个指针,名字叫做p;p = &a;//将变量a的地址赋给p;此时,p中存储的就...
2020-04-15 22:35:05 189
原创 用两个栈模拟一个队列,栈的容量分别是O和P(O>P),讨论队列可以实现的最大容量
思路分析: 栈,先进后出;队列,先进先出;用一个栈存储先进来的数据,然后将这个栈全部POP(出栈)到第二个栈中,此时第二个栈的顺序便是理想的出栈顺序。简单来说就是一个栈用来做输入,一个栈用来做输出。如下图: 下面进行可以实现的最大容量讨论: 假设栈1(s1)的容量为O,栈2(s2)的容量为P,并且(O>P),用s1来做存储栈,s2来做...
2020-03-26 09:13:39 865
原创 成绩排序
成绩排序问题题目描述查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。示例:jack 70peter 96Tom 70smith 67从高到低 成绩peter 96jack 70Tom 70smith 67从低到...
2020-03-23 22:53:10 271
原创 C++简单解决进制转化问题
开门见山的讲,今天稍微说一下c++如何简单的进行进制转化,其实就是输入输出问题,但是因为库函数已经写好,所以只要会用就行。先来看一个题:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输入描述:输入一个十六进制的数。输出描述:输出该数值的十进制数。用c++实现:#include<iostream>using namespace std;i...
2020-03-19 22:29:29 212
原创 关于sstream中的stringstream的巧用解题
最近在做一道编程题的时候,发现用c++中sstream库函数的stringstream对象用起来真的很方便,所以写出来把自己的理解写一下。其实string stream运用更多的地方应该是不同类型格式之间的转化,例如:头文件是:#include<sstream>#include <string>#include <sstream>#include ...
2020-03-17 21:39:40 271
原创 输入字符转换二进制求出1的个数问题
关于将整数转化成二进制的问题,我们常用的可以是itoa()这个函数,但是在一些OJ上,对于这个非标准函数的判定存在问题,所以最好还是自己能够掌握手动十进制转二进制的算法(短除法)为好。/*题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述:输入一个整数(int类型)输出描述:这个数转换成2进制后,输出1的个数*/#include&...
2020-03-14 10:08:09 218
原创 字符串逆序输出
/*题目描述描述:输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001*/#include<stdio.h>int main(){ char str[100]; scanf("%s",&str); int n=0; whil...
2020-03-14 08:33:50 758
基于无线传感器网络的移动目标跟踪系统设计与实现.zip
2020-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人