- 博客(74)
- 收藏
- 关注
原创 Http模块
Web服务器什么是Web服务器?当应用程序(客户端)需要某一个资源时,可以向一个台服务器,通过Http请求获取到这个资源;提供资源的这个服务器,就是一个Web服务器;目前有很多开源的Web服务器:Nginx、Apache(静态)、Apache Tomcat(静态、动态)、Node.jsWeb服务器初体验创建服务器创建服务器对象,我们是通过 createServer 来完成的http.createServer会返回服务器的对象;底层其实使用直接 new Server 对象。下
2021-12-27 17:21:12
252
4
原创 了解Stream
认识Stream什么是流呢?我们的第一反应应该是流水,源源不断的流动;程序中的流也是类似的含义,我们可以想象当我们从一个文件中读取数据时,文件的二进制(字节)数据会源源不断的被读取到我们程序中;而这个一连串的字节,就是我们程序中的流;所以,我们可以这样理解流:是连续字节的一种表现形式和抽象概念;流应该是可读的,也是可写的;在之前学习文件的读写时,我们可以直接通过 readFile或者 writeFile方式读写文件,为什么还需要流呢?直接读写文件的方式,虽然简单,但是无法控
2021-12-27 16:30:45
374
原创 事件循环和异步IO
什么是事件循环?事件循环是什么?事实上我把事件循环理解成我们编写的JavaScript和浏览器或者Node之间的一个桥梁。浏览器的事件循环是一个我们编写的JavaScript代码和浏览器API调用(setTimeout/AJAX/监听事件等)的一个桥梁, 桥梁之间他们通过回调函数进行沟通。Node的事件循环是一个我们编写的JavaScript代码和系统调用(file system、network等)之间的一个桥梁, 桥梁之间他们通过回调函数进行沟通的.进程和线程线程和进程是操作系统
2021-12-25 20:20:15
865
原创 Buffer的使用
数据的二进制计算机中所有的内容:文字、数字、图片、音频、视频最终都会使用二进制来表示。JavaScript可以直接去处理非常直观的数据:比如字符串,我们通常展示给用户的也是这些内容。不对啊,JavaScript不是也可以处理图片吗?事实上在网页端,图片我们一直是交给浏览器来处理的;JavaScript或者HTML,只是负责告诉浏览器一个图片的地址;浏览器负责获取这个图片,并且最终讲这个图片渲染出来;但是对于服务器来说是不一样的:服务器要处理的本地文件类型相对较多; p 比如某一个保
2021-12-25 16:49:05
1402
原创 1029 旧键盘 (20 分) javascript
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。输出格式:按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。输入样例:7_This_
2021-12-19 00:33:45
86
原创 1030 完美数列 (25 分) javascript
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。输出格式:在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。输入样例:10 82 3 20 4 5 1 6 7 8 9// 结尾
2021-12-19 00:28:21
83
原创 1031 查验身份证 (15 分) javascript
一个合法的身份证号码由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-12-19 00:18:44
313
原创 1032 挖掘机技术哪家强 (20 分) javascript
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过 105的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。输入样例:63 652 801 1002 703 403 0输出
2021-12-19 00:13:54
90
原创 1033 旧键盘打字 (20 分) javascript
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 105个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,、.、-、+(代表上档键)。题目保证第 2 行输入的文字串非空。注意:如果上档键坏掉了,那么大写的英文字母无法被打出。输出格式:在一行中输出能
2021-12-19 00:09:09
71
原创 1034 有理数四则运算 (20 分) javascript
本题要求编写程序,计算 2 个有理数的和、差、积、商。输入格式:输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。输出格式:分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,其中 k 是整数部分,a/b 是最简分数部分;若为负数,则须加括号;若除法分母为 0,则输出 Inf。题目保证正确的输
2021-12-19 00:03:42
86
原创 Dijkstra 算法(最短路径)
Dijkstra 算法是一种计算从单个源到所有其他源的最短路径的贪心算法,这意味着我们可以用它来计算从图的一个顶点到其余各顶点的最短路径。考虑下面这个图:可以看看如何找到顶点A和其余顶点之间的最短路径。但首先,我们需要声明表示上图的邻接矩阵:var graph = [ [0, 2, 4, 0, 0, 0], [0, 0, 2, 4, 2, 0], [0, 0, 0, 0, 3, 0], [0, 0, 0, 0, 0, 2], [0, 0, 0, 3, 0, 2], [0, 0, 0, 0
2021-12-14 17:30:10
542
原创 1036 跟奥巴马一起编程 (15 分) javascript
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。输入样例:1
2021-12-09 15:27:03
82
原创 1037 在霍格沃茨找零钱 (20 分) javascript
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut,其间用 1 个空格分隔。这里 Galleon 是 [0, 107] 区间内的整数,Sickle 是 [0, 17) 区间内的整数,
2021-12-09 15:25:05
93
原创 1038 统计同成绩学生 (20 分) javascript
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第 1 行给出不超过 105的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。输出格式:在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。输入样例:1060 75 90 55 75 99 82 90 75 503 75 90 88// 结尾无空
2021-12-09 15:21:48
388
原创 1039 到底买不买 (20 分) javascript
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。图 1输入格式:每个输入包
2021-12-09 15:19:20
76
原创 1040 有几个PAT (25 分) javascript
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位§,第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个 PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含 P、A、T 三种字母。输出格式:在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。输入样例:APPAPT// 结尾无空行输出样例:2
2021-12-09 15:15:50
393
原创 1041 考试座位号 (15 分) javascript
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证
2021-12-02 17:10:01
109
原创 1042 字符统计 (20 分) javascript
请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。输入样例:This is a simple TEST. There ARE numbers and other symb
2021-12-02 17:06:08
96
原创 1043 输出PATest (20 分) javascript
给定一个长度不超过 104的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest… 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:redlesPayBestPATTopTeePHPereatitAPPT
2021-12-02 17:02:21
89
原创 1044 火星数字 (20 分) javascript
火星人是以 13 进制计数的:地球人的 0 被火星人称为 tret。地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。火星人将进位以后的 12 个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。例如地球人的数字 29 翻译成火星文就是 hel mar;而火星文 elo nov 对应地球数字 115。为了
2021-12-02 16:58:41
83
原创 1045 快速排序 (25 分) javascript
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 N=5, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;尽管 2 的右边元素都比它大,但其左边的 3 比它大,所以它不能是主元;类似原因,4
2021-12-02 16:55:18
72
原创 1046 划拳 (15 分) javascript
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中喊是喊出的数字,划是划出的数字,均为不超过 100 的正整数(两只手一起划)。
2021-11-30 16:56:01
76
原创 1047 编程团体赛 (20 分) javascript
编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军队。输入格式:输入第一行给出一个正整数 N(≤104),即所有参赛队员总数。随后 N 行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的正整数,队员编号为 1 到 10 的正整数,成绩为 0 到 100 的整数。输出格式:在一行中输出冠军队的编号和总成绩,其间以一个空格分隔。注意:题目保证冠军
2021-11-30 16:54:17
69
原创 1048 数字加密 (20 分) javascript
本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结果。输入样例:1234567 3687829
2021-11-30 16:50:43
78
原创 1051 复数乘法 (15 分) javascript
复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i2=−1;也可以写成极坐标下的指数形式 (R×e(Pi)),其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 R(cos§+isin§)。现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的 R1 , P1 , R2 , P2,数字间以空格分隔。输出格式:在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数。注意:
2021-11-30 16:40:52
70
原创 js高级-函数执行-作用域链-面试题-内存管理
代码的执行过程01_全局代码执行过程var name = "ytl"// 遍历声明被提升了,但是还没赋值,所以打印出来的是undefinedconsole.log(num1) // undefinedvar num1 = 20var num2 = 30var result = num1 + num2console.log(num1) // 20console.log(result) // 50/* 1. 代码被解析(编译),v8引擎内部会帮助我们在堆内存中创建一个对象(Glob
2021-11-30 13:27:53
148
原创 1053 住房空置率 (20 分) javascript
在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”;若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比。输入格式:输入第一行给出正整数 N(≤1000),为居民区住房总套数;正实数 e,即低电量阈值;正整数 D,即观察
2021-11-26 16:06:37
60
原创 1056 组合数的和 (15 分) javascript
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出格式:输出所有可能组合出来的2位数字的和。输入样例:3 2 8 5// 结尾无空行输出样例:330// 结尾无空行解题思路:解题代码
2021-11-26 16:02:38
354
原创 1057 数零壹 (20 分) javascript
给定一串长度不超过 105的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 1。输入格式:输入在一行中给出长度不超过 105、以回车结束的字符串。输出格式:在一行中先后输出 0 的个数和 1 的个数,其间以空格分隔。注意
2021-11-26 15:56:50
438
原创 1058 选择题 (20 分) javascript
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文字母 a 开始顺次排列。各项间以 1 个空格分隔。最后 N 行,每行给出一个学生的答题情况,其每题答案格式为 (选中
2021-11-25 17:12:56
64
原创 1059 C语言竞赛 (20 分) javascript
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!2、其他人将得到巧克力。给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。输入格式:输入第一行给出一个正整数 N(≤104),是参赛者人数。随后 N 行给出最终排名,每行按排名顺序给出一位参赛者的 ID(4 位数字组成)。接下来给出一个正
2021-11-25 17:05:45
121
原创 1060 爱丁顿数 (25 分) javascript
英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。输入格式:输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。输出格式:在一行中给出 N 天的爱丁顿数。输入样例:106 7 6 9 3 10 8 2 7 8// 结尾无空行输出样例:6/
2021-11-25 16:59:24
61
原创 01-JS的运算符优先级问题
var val = "smtg"console.log("Value is " + (val === "smtg") ? "Something" : "Nothing")这里最终输出的是:Something首先,小括号的优先级是最高的,所以会先做判断,val与“smtg”相等返回true这时候就有疑惑了,可能有以下两种情况// 语句1console.log("Value is " + (true ? "Something" : "Nothing"))// 语句2console.log(
2021-11-25 13:10:16
452
原创 数据可视化Echarts
什么是数据可视化?数据可视化:为了清晰有效地传递信息,数据可视化使用统计图形、图表、信息图表和其他工具;可以使用点、线或条,对数字数据进行编码;数据可视化让我们可以更加清晰的去认识、理解、表达数据;前端可视化工具前端进行数据可视化的工具非常多常见的框架:Echarts、g2、d3、vis、hightChar等等;g2框架封装:bizcharts(react)viser(vue);地理可视化:g2、L7、高德的Loca、菜鸟的 鸟图;3D可视化:three.js目前使
2021-11-15 17:33:10
1254
原创 1061 判断题 (15 分) javascript
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。输出格式:按照输入的顺序输出每个学生的得分,每个分数占一行。输入样例:3 62 1 3 3 4 50 0 1 0 1 10 1 1 0
2021-11-10 14:15:24
100
原创 1062 最简分数 (20 分) javascript
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数 N1/M1和 N2/M2,要求你按从小到大的顺序列出它们之间分母为 K 的最简分数。输入格式:输入在一行中按 N/M 的格式给出两个正分数,随后是一个正整数分母 K,其间以空格分隔。题目保证给出的所有整数都不超过 1000。输出格式:在一行中按 N/M 的格式列出两个给定分数之间分母为 K 的所有最简分数,按从小到大的顺序,其间以 1 个空格分隔。行首尾不得有多余
2021-11-10 14:07:05
110
原创 1063 计算谱半径 (20 分) javascript
在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的 n 个复数空间的特征值 { a1+b1i,⋯,an+bni },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。现在给定一些复数空间的特征值,请你计算并输出这些特征值的谱半径。输入格式:输入第一行给出正整数 N(≤ 10 000)是输入的特征值的个数。随后 N 行,每行给出 1 个特征值的实部和虚部,其间以空格分隔。注意:题目保证实部和虚部均为绝对值不超过 1000 的整数。输出格式:在一行中输出谱半径,四舍五
2021-11-10 13:46:41
79
原创 1064 朋友数 (20 分) javascript
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。输入格式:输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于 104。输出格式:首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格。输入
2021-11-10 13:40:28
64
原创 javascript数据结构-链表
1. 链表数据结构链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不算连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。下图展示一个链表结构:相对于传统的数组,链表的一个好处在于,添加或移除元素的时候不需要移动其他元素。然而,链表需要使用指针,因此实现链表时需要额外注意。在数组中,我们可以直接访问任何位置的任何元素,而想要访问链表中间的一个元素,则需要从起点(表头)开始迭代链表直到找到所需的元素。可以用火车来说明链表。每节车厢都是链表的元素,车
2021-11-10 13:31:34
723
原创 javascript数据结构-队列和双端队列
1. 队列数据结构队列是遵循先进先出(FIFO,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。1.1 创建队列首先需要一个用于存储队列中元素的数据结构。可以使用数组,但是为了写出一个在获取元素时更高效的数据结构,将使用一个对象来存储元素。会发现Queue类和Stack类非常类似,只是添加和移除元素的原则不同。export default class Queue { constructor() { this.count =
2021-11-07 15:28:45
2734
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人