2022.11.8 ONES 前端笔试
这好像是思否的母公司?讨论的人数好低,
豪哥666
选择题
- 对
2022/11/06
的Date
对象分别调用getMonth/getDate/getDay
的结果是?- 结果是:
10/6/0
,考察Date|API
的八股
- 结果是:
- 操作系统的功能不包括
- 用户管理 - 不包括这个
- 进程管理
- 处理机、设备管理
- 存储管理
input
进入页面自动获取焦点的属性是?autofocus
,值为Boolean
类型,参考 autofocus - MDN
- 关于
IP
数据报尽最大努力交付理解错误的是?太过偏僻的八股,完全没见过 TCP
三次握手中第三次握手发送的TCP
段的TCP
头的标志位是什么?ACK
- 正确答案SYN + ACK
SYN
undefined + undefined
,ps: 这是一道考察this
指向的问题,但this
比较简单,反而是输出判断比较难- 下面哪个状态码会发送两次请求?
- 304 - 协商缓存的状态码,先请求服务器判断是否
- 302
- 404
- 401
- 网卡实现的主要功能是?
- 物理层和数据链路层之间 - answer
- 数据链路层和网络层之间
- 网络层和传输层之间
- 传输层和应用层之间
-
- 构建
DOM
树 2. 构建CSS
树 3. 绘制render
树 4. 布局render
树 5. 构建render
树,请问1-5
的顺序是? - answer: 1-2-5-4-3
- 构建
- 执行以下程序,对于下列选项的选择器,能且仅能选中第一个
<p>
标签的一项是?参考CSS 选择器.box p {}
p~p {}
- 正确答案div+p {}
.box>p {}
<div class="box">
<div></div>
<p></p>
<p></p>
</div>
- 分析以下的排序过程对应的排序算法是哪一种?(升序排序)
- 插入排序 - 排除
- 选择排序 - 排除
- 归并排序 - 排除
- 冒泡排序
初始: 51 64 42 56 86 140 12 43
第一趟: 51 42 56 64 86 12 43 140
手撕
- 反转字符串,例如
123 -> 321
- 假设有
n
个金币,按顺序(1 - n
)一字排开,小A
和 小B
捡金币,小A
从头开始捡到L
位置,小B
从后面开始捡到R
位置,要求L < R
,问他们两个捡到的金币差值的绝对值最小值和L|R
位置是多少呢?
// 测试用例
// 5
// 1 2 3 4 5
// a: 1 3 5 min: 1, L: 3, R: 5
// 5
// 1 1 1 1 1
// a: 0 1 5
// 10
// 1 2 3 4 1 1 3 2 1 4
// a: 0 4 7
解法
只过了 65.97%
,超时了,估计是 coinTotalToStart
和 coinTotalToEnd
超时了,每次调用都是 O(n)
,应该采用前缀和数组
也有同学指出可以使用首尾双指针解决这道问题
// 本题为考试多行输入输出规范示例,无需提交,不计分。
var readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false,
});
var n = -1; // 初始状态为负数,表示还没开始读取
var numsLength = -1;
var nums = [];
rl.on("line", function (line) {
if (n === -1) {
numsLength = parseInt(line.trim());
n++;
} else if (n === 0) {
nums = line.split(' ').map(val => Number(val));
n++;
const arr = nums;
function coinTotalToEnd(arr, start) {
let total = 0;
for (let i = start; i < arr.length; i++) {
total += arr[i];
}
return total;
}
function coinTotalToStart(arr, end) {
let total = 0;
for (let i = 0; i <= end; i++) {
total += arr[i];
}
return total;
}
let resArr = [];
let min = Number.MAX_SAFE_INTEGER;
function dfs(arr, l, r) {
if (l >= r) {
return;
}
const temp = Math.abs(coinTotalToStart(arr, l) - coinTotalToEnd(arr, r));
if (temp < min) {
resArr = [];
min = temp;
resArr.push([l, r]);
} else if (temp === min) {
resArr.push([l, r]);
}
dfs(arr, l + 1, r);
dfs(arr, l, r - 1);
}
dfs(arr, 0, arr.length - 1);
let minL = arr.length;
let minLIndex = undefined;
for (let i = 0; i < resArr.length; i++) {
if (resArr[i][0] < minL) {
minL = resArr[i][0];
minLIndex = i;
}
}
console.log(min, resArr[minLIndex][0] + 1, resArr[minLIndex][1] + 1);
}
});
前缀和解法
function PartialSum(nums) {
const preSum = new Array(nums.length + 1).fill(0);
for (let i = 1; i < preSum.length; i++) {
preSum[i] = preSum[i - 1] + nums[i - 1];
}
this.preSum = preSum;
}
PartialSum.prototype.sumRange = function (left, right) {
return this.preSum[right + 1] - this.preSum[left];
}
function coinTotalToEnd(arr, start) {
return partialSum.sumRange(start, arr.length - 1);
}
function coinTotalToStart(arr, end) {
return partialSum.sumRange(0, end);
}
// 本题为考试多行输入输出规范示例,无需提交,不计分。
var readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false,
});
var n = -1; // 初始状态为负数,表示还没开始读取
var numsLength = -1;
var nums = [];
var partialSum = null;
rl.on("line", function (line) {
if (n === -1) {
numsLength = parseInt(line.trim());
n++;
} else if (n === 0) {
nums = line.split(' ').map(val => Number(val));
n++;
const arr = nums;
partialSum = new PartialSum(nums);
let resArr = [];
let min = Number.MAX_SAFE_INTEGER;
function dfs(arr, l, r) {
if (l >= r) {
return;
}
const temp = Math.abs(coinTotalToStart(arr, l) - coinTotalToEnd(arr, r));
if (temp < min) {
resArr = [];
min = temp;
resArr.push([l, r]);
} else if (temp === min) {
resArr.push([l, r]);
}
dfs(arr, l + 1, r);
dfs(arr, l, r - 1);
}
dfs(arr, 0, arr.length - 1);
let minL = arr.length;
let minLIndex = undefined;
for (let i = 0; i < resArr.length; i++) {
if (resArr[i][0] < minL) {
minL = resArr[i][0];
minLIndex = i;
}
}
console.log(min, resArr[minLIndex][0] + 1, resArr[minLIndex][1] + 1);
}
});
#ones##ONES##笔试题目#