2024华为OD机考面试经验分享

什么是华为OD?

华为OD因为还是外包性质,相对正编来说要轻松一些。(前提是你不想去卷A绩效),一般情况可以八九点就溜下班。然后工作环境的话,和正编一样。

很多小伙伴其实都是从大城市想回老家,所以才选的华为OD吧,东莞/西安/成都 这几个地方超级卷。

面试流程

机考

(三道编程题150分钟/两道简单题(每道100分)+一道中等难度题(200分))

考试在牛客网答题,按照HR发你的考试攻略,在牛客网刷刷输入输出类的题目。

北京地区要求300分过线,其他地区200多分就可以去干外包项目了。

性格测试

机考过了HR第二天就会联系你,给你发性格测试攻略。

牛客网做题攻略

参加考试前,需要充分了解牛客网答题的方式,如何测试,提交代码等等,否则你直接去考试会很懵逼。

下面提供一些示例:

题库连接

牛客题库

牛客网输入输出问题

  • 题目提到的输出需要使用console.log(),多行输出只要循环console.log()即可。
  • 特定行数的输入,需要自己用变量记录,然后使用变量编程实现
  • 程序readline读到的行内容是字符串,需要自己转换为number
  • 可以使用自测输入,来调试并且查看用例通过数量

输入为一行

输入:为一行,只包含小写字母的字符串

输出:该字符串反转后的字符串

js 复制代码
const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
rl.on('line', function (line) {
    // 使用 console.log() 代替 return
    console.log(line.split('').reverse().join(''))
});

有确定行数的输入

描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

数据范围:

1 ≤ n ≤ 1000

输入描述:

第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

js 复制代码
const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
const arr = []
rl.on('line', function (line) {
    arr.push(line)
    if (arr.length === 2) {
        const obj = {}
        arr[0].toLowerCase().split('').forEach(item => {
            if (obj[item]) {
                obj[item] += 1
            } else {
                obj[item] = 1
            }
        })
        console.log(obj[arr[1].toLowerCase()] || 0)
    }
});

输出为间接确定行数

输入:

3

2

2

1

输出:

1

2

说明:

输入解释:

第一个数字是3,也即这个小样例的N=3,说明用计算机生成了3个1到500之间的随机整数,接下来每行一个随机数字,共3行,也即这3个随机数字为:

2

2

1

所以样例的输出为:

1

2

js 复制代码
const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

let lineNum = 0;
let count = null;
const result = [];
rl.on("line", function (line) {
  if (lineNum === 0) {
      lineNum++;
      count = parseInt(line);
  } else {
      result.push(line);
      if (result.length === count) {
        function unique(arr) {
            let result = [];
            for (let i = 0; i < arr.length; i++) {
                if (result.indexOf(arr[i]) === -1) {
                    result.push(arr[i]);
                }
            }
            return result;
        }
        const uniq = unique(result).sort((a,b) => a-b);
        uniq.forEach(item => console.log(item))
      }
  }
});

规定好方法名和变量名的

JZ69 跳台阶

选择JavaScrip Node环境

js 复制代码
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param number int整型 
 * @return int整型
 */
function jumpFloor( number ) {
    // write code here
    if (number <= 2) return number
    return jumpFloor(number-1) + jumpFloor(number-2)
}
module.exports = {
    jumpFloor : jumpFloor
};

二叉树前序遍历

https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635?tpId=295\&tqId=2291302\&ru=/exam/company\&qru=/ta/format-top101/question-ranking\&sourceUrl=%2Fexam%2Fcompany

输入:{1,#,2,3}

返回值:[1,2,3]

输入会为你构建成树。

js 复制代码
/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param root TreeNode类 
 * @return int整型一维数组
 */
function preorderTraversal( root ) {
    // write code here
    let result = []
    function traverse(node) {
        if (!node) return
        result.push(node.val)
        traverse(node.left)
        traverse(node.right)
    }
    traverse(root)
    return result
}
module.exports = {
    preorderTraversal : preorderTraversal
};
相关推荐
半聋半瞎8 分钟前
【进程和线程】(面试高频考点)
java·jvm·面试
Java_young30 分钟前
(十七) Nginx解析:架构设计、负载均衡实战与常见面试问题
nginx·面试·负载均衡
枣仁_35 分钟前
大型语言模型(LLM)深度解析
前端·javascript·面试
鱼樱前端44 分钟前
36道我命由我不由天的JavaScript 基础面试题详解
前端·javascript·面试
阿卡好可爱1 小时前
锐势信息的面试
面试·职场和发展
白水先森1 小时前
如何借助 ArcGIS Pro 高效统计基站 10km 范围内的村庄数量?
经验分享·arcgispro
拉不动的猪2 小时前
刷刷题28(http)
前端·javascript·面试
白水先森3 小时前
ArcGIS Pro建库中常用公式的应用与技巧
经验分享·arcgis·arcgispro
白水先森3 小时前
牵引线标注:让地图信息更清晰的ArcGIS Pro技巧
开发语言·javascript·经验分享·arcgis·arcgispro
IT、木易3 小时前
大白话 CSS 中transform属性的常见变换类型(平移、旋转、缩放等)及使用场景
前端·css·面试