自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 华为机试练习汇总(JS实现)

华为上机考试注意事项牛客网JavaScript(V8)输入输出操作指南华为机试题库(牛客网)2016华为校招真题(牛客网)【注】牛客网不像 Leetcode 一样只用写函数就好,需要自己完成输入输出,且在提交有错时不显示测试用例,需要自己判断;有时候可能会有多组输入输出,最好写的时候都按多组的情况来写;有时输入字符串前后可能会有空格,因为看不到测试用例,未避免出错,最好提前处理;题目都是网上找的,不保证题目描述的准确性,仅用于参考;练习题第一题会给出标准格式的解答,之后的题不考虑多个.

2021-06-09 13:10:14 4090

原创 华为机试练习(十四)魔力台阶

题目描述科科最近在修炼魔法,一日他来到魔法城堡,城堡里有一个长长的台阶,而台阶的最终点便是魔法奥秘。这是一个魔力台阶,每个台阶都有一个魔力值,魔力值代表下一步科科最大可以跨越的台阶数。科科当前处在第1级台阶上,但是科科的体力有限,最多只能跨越K次。科科现在拜托你帮他计算下他能否拿到魔法奥秘。如果能够拿到返回最少跨越的次数,拿不到则返回-1。输入台阶长度n (1<=n<=10^5)台阶魔力值,[M1, M2… Mn]由一个长度为n的数组表示,代表1~n级台阶的魔力值。(0<.

2022-03-27 23:05:27 2078

原创 JS实现常用排序算法

const input = "15 2 4 8 7 9 3"console.log(`输入:${input}`);const arr = input.split(" ").map(Number)// 交换两个数function exchange(x, y) { return [y, x]}// 冒泡:稳定function bubble(a) { // 获取转化后的数组 let arr = [...a] const len = arr.length - 1

2021-07-13 10:08:54 544

原创 华为机试练习(十三)输入一个数字n,如果n为偶数则除以2,若为奇数则加1或者减1,直到n为1,求最少次数

【分析】动态规划:

2021-06-10 22:45:39 1419 2

原创 华为机试练习(十二)叠积木

题目描述积木宽高相等,长度不等,每层只能放一个或拼接多个积木,每层长度相等,求最大层数,最少2层。输入给定积木的长度,以空格分隔,例如:3 6 6 3。输出如果可以搭建,返回最大层数,如果不可以返回-1。样例输入3 6 6 3样例输出3样例输入3 5样例输出-1【分析】设所有积木长度总和为 sum ,若可以搭建为 m 层,每层积木长度为 n ,则必有 sum = mn ;设积木中长度最大值为 max ,则必有 n >= max所以本题只需求出积木总长度 su.

2021-06-10 15:30:26 8279 11

原创 华为机试练习(十一)求数组中最大n个数和最小n个数的和

题目描述输入一个数 M ,表示数组中有 M 个数输入 M 个数。输入 n求数组 M 中,去除重复值后,最大 n 个数和最小 n 个数的和注意:最大和最小的数中不能有重复值,否则输出 -1样例输入53 3 2 4 22样例输出-1说明去除重复后最大的2个数为[4,3],最小的2个数为[2,3];有相同值,所以返回-1样例输入53 3 2 4 21样例输出6说明去除重复后最大的1个数为[4],最小的1个数为[2];没有相同值,返回6【分析】获取到输入的数.

2021-06-10 13:59:27 3567 2

原创 华为机试练习(十)求第K多连续重复子串

题目描述积木宽高相等,长度不等,每层只能放一个或拼接多个积木,每层长度相等,求最大层数,最少2层。输入给定积木的长度,以空格分隔,例如:3 6 6 3。输出如果可以搭建,返回最大层数,如果不可以返回-1。样例输入3 6 6 3样例输出3样例输入3 5样例输出-1【分析】假设可以搭建,层数为 n ,每层长度为 m ,则所有积木的总长 = m*n反向判定:计算所有积木的总长,找到其所有大于 2 的因数,判断以当前长度是否可以搭建且每层长度不小于所有积木当中的最大值.

2021-06-10 13:41:29 1108

原创 华为机试练习(九)找终点

题目描述给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数。第一步必须从第一元素开始,1<=步长<len/2, 第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数。样例输入7 5 9 4 2 6 8 3 5 4 3 9样例输出2说明第一步走2步(2<len/2),走到9,第二步走9步到底最后一个成员,最少步数两步【分析】第一步可以走 [1,len/2) 的任意一种,遍历所有情况,找到符.

2021-06-09 15:35:01 3416 1

原创 华为机试练习(八)最大括号深度

题目描述一字符串仅由三种(6个)括号组成,求嵌套深度,若不合法,输出0【分析】栈的应用,左括号入栈,遇到右括号出栈判断两个括号是否匹配,若匹配,继续,不匹配,则不合法,直至遍历完【实现】// 输入input = "((([]){(()(})}))"// 记录括号的栈let stack = []// 标记:字符串是否合法let flag = true// 最大深度let max = 0// 循环遍历输入for (const x of input) { if ((x .

2021-06-09 15:22:05 2648

原创 华为机试练习(七)书籍叠放问题

题目描述假设书本的叠放有这样的规则,当A书的长度和宽度都大于B书时,可以将其B书置于A的上方,堆叠摆放,请设计一个程序,根据输入的书本长宽,计算最多可以堆叠摆放多少本书?输入[[16,15], [13, 12], [15, 14]]输出3说明这里代表有3本书,第1本长宽分别为16和15,第2本长宽为13和12,第3本长宽为15和14,它们可以按照 [13, 12],[15, 14],[16,15] 的顺序堆叠,所以输出3【分析】动态规划,实质是求最长递增子序列,但本题有两个.

2021-06-09 15:14:15 7196 6

原创 华为机试练习(六)区间交集

题目描述给若干个区间,区间数少于1000,区间范围[-10000,10000]。当区间数少于2个时输出None。当各个区间有交集的时候取交集,再求交集的并集样例输入1 3 2 4 4 8 5 9样例输出2 3 4 4 5 8说明[1,3]、[2,4]、[4,8]、[5,9] 四个区间[1,3]与[2,4]交集为[2,3],[1,3]与[4,8]、[5,9]没有交集[2,4]与[4,8]]交集为[4,4]。[2,4]与[5,9]没有交集[4,8]与[5,9]的交集为[5,8]所以.

2021-06-09 14:59:39 2459

原创 华为机试练习(五)喊7的次数重排

题目描述喊7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1,但是当数字是7的倍数或者数字本身含有7的话,要喊"过"。现给定一个长度为N的数组,存储了打乱顺序的每个人喊"过"的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人喊"过"的次数。输入输入为一行,为空格分隔的喊"过"的次数样例输入0 1 0样例输出1 0 0说明一共只有一次喊"过",那只会发生在需要喊 7 时,按顺序,编号为 .

2021-06-09 14:26:34 7777 2

原创 华为机试练习(四)勾股数元组

题目描述给定正整数N, 计算出小于或等于N的素勾股数个数关于素勾股数,简单来说,就是 a 2 + b 2 = c 2 且 a、b、c 互质,则称(a,b,c)为一组素勾股数【分析】可以通过三层循环,找到所有符合要求的数,得到其个数,不过这样当 N 大些的时候效率就比较低;了解(素勾股数、毕达哥拉斯三元组等知识),可得到关于素勾股数的一个结论:对于一组素勾股数(a,b,c),存在 m、n 使得 a = m 2 - n 2,b = 2mn, c = m 2 + n 2,且 gcd(m,n).

2021-06-09 14:09:29 5303 5

原创 华为机试练习(三)服务器广播

3. 服务器广播题目描述服务器连接方式包括直接相连,间接连接。A 和 B 直接连接, B 和 C 直接连接,则 A 和 C 间接连接。直接连接和间接连接都可以发送广播。给出一个 N * N 数组,代表 N 个服务器, matrix[i][j] == 1 ,则代表 i 和 j 直接连接;不等于 1 时,代表 i 和 j 不直接连接。 matrix[i][i]== 1 ,即自己和自己直接连接。matrix[i][j]==matrix[j][i] 。计算初始需要给几台服务器广播,才可以使侮个服务器

2021-06-09 13:43:09 5319 1

原创 华为机试练习(二)二叉树遍历

2. 二叉树的遍历题目描述给定一棵二叉树的前序遍历和中序遍历,求其后序遍历输入两个字符串,其长度n均小于等于26第一行为前序遍历,第二行为中序遍历二叉树中的结点名称以大写字母表示:A,B,C….最多26个结点输出输入样例可能有多组,对于每组测试样例输出一行,为后序遍历的字符串样例输入ABCBACFDXEAGXDEFAG样例输出BCAXEDGAF【分析】由先序遍历和中序遍历可确定唯一的二叉树,然后再对其进行后序遍历即可【实现】// 获取输入cons

2021-06-09 13:17:04 2992

原创 华为机试练习(一)扑克牌大小

1. 扑克牌大小这道题在开始给的牛客网题库中均出现,题目描述见这里,可以直接在牛客网进行练习,最好将测试模式选为[考试模式]【分析】题目比较简单,除了有炸弹(包括大小王)存在的情况下,其他比较时两副牌的类型必须相同;且本题不同类型的牌面的个数均不相同,所以可以通过个数判断牌的类型;当类型相同时,只需要判断最小牌的牌面,就可以比较出大小【实现】while (line = readline()) { // 通过数组的索引确定牌的大小顺序 const compare = ['3', '4'

2021-06-09 13:12:02 1979

原创 CSS常用长度单位区别

1. px像素(pixel)的缩写,图像中不可分割的最小单位,绝对长度2. em相对长度,以父元素的font-size为参照 <div style="font-size: 16px;"> 第一层 <div style="font-size: 1em;"> 第二层 <div style="font-size: 2em;"> 第三层

2021-04-06 20:10:58 172

原创 伪类和伪元素

一、什么是伪类与伪元素依据官方对其的描述:CSS引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素用来修饰不在文档树中的部分。伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以通过:hover来描述这个元素的状态。虽然它和普通的 CSS 类相似,可以为已有的元素添加样式,但是它只有处于文档树无法描述的状态下才能为元素添加样式,所以将其称为伪类。伪元素用于创建一些不在文档树中的元素,并为其添加样式。

2021-04-06 16:56:00 118

原创 高度坍塌及其解决方案

一、什么是高度坍塌一般而言,父级元素不设置高度时,高度由随内容增加自适应高度。当父级元素内部的子元素全部都设置浮动float之后,子元素会脱离标准流,不占位,父级元素检测不到子元素的高度,父级元素高度为0。二、解决方案1. 为父元素添加声明overflow: hidden【原理】详见BFC四、2【缺点】不能和position定位配合使用,超出的尺寸会被隐藏2. 在浮动元素下方添加空div,并给元素声明clear:both【原理】写入了clear: both的元素不允许周围有浮动的元素产生,所

2021-04-06 15:07:05 410

原创 水平居中、垂直居中和水平垂直居中 方法总结

水平居中子元素是行内元素,父元素是块元素[父]:text-align: center子元素是块级元素(已知宽度)[子]:margin: 0 auto设置父元素为相对定位[子]:absolute + transformposition: absolute;left: 50%;transform: translateX(-50%);父元素添加:flex + justify-content:center垂直居中单行的行内元素[子]:line-height: height设置父元素

2021-04-06 14:33:25 227

原创 层叠上下文、层叠等级、层叠顺序

一、z-indexz-index属性用于设置元素的堆叠顺序,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。其在不设置时默认为auto,设置时只能取整数,如”-2,-1,0,1,2,…”。该属性设置一个定位元素沿z轴的位置,z轴定义为垂直延申到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。注意:z-index只对指定了position属性的元素生效当没有指定z-index时,所有元素都会被渲染在默认层(0层)二、什么是层叠上下文层叠上下文(stacking c

2021-04-06 13:45:27 954

原创 BFC

一、常见定位方案1. 普通流(normal flow)元素按照其在HTML中的先后位置至上而下布局行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行所有的元素默认都是普通流定位可以说,普通流中元素地位置由该元素在HTML文档中的位置决定2. 浮动(float)元素首先按照普通流的位置出现,然后根据浮动的方向尽可能地向左边或右边偏移3. 绝对定位(absolute positioning)元素会整体脱离普通流,因此绝对定位不会对其兄弟元素造成影响二、

2021-04-05 21:22:55 131

原创 两种盒子模型

一、什么是盒子模型CSS盒子模型(Box model)是利用CSS技术进行网页设计时所使用的一种思维模型。它将网页中的每个元素都看成一个盒子,每个盒子具备以下四个属性:margin(外边距)padding(内边距)border(边框)content(内容)...

2021-04-05 18:05:00 482 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除