面试/笔试题
面试/笔试题
丶Xylon
这个作者很懒,什么都没留下…
展开
-
华为OD面经Java
深挖项目,面试官很友好,根据项目的每个技术点和场景来提问,比如项目中数据库数据量级有多大,什么时候会出现缓慢,如何解决的,有没有经过压力测试,经过优化后性能怎么样,项目中用到的Kafka和redis都起了什么作用。因为想用结构体排序的方法只好硬着头皮用C++写,最后写完质疑我怎么没用Java写,在我讲完思路后又问了句能不能用Java写,回答能,然后就结束了。原创 2023-11-02 19:24:40 · 442 阅读 · 2 评论 -
【Leetcode】22 括号生成 递归
用递归的方法,从n=1开始,依次往左边,右边,中间加括号,中间注意去重(也可以直接用set)代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。原创 2023-11-02 19:06:34 · 313 阅读 · 0 评论 -
【LeetCode】415 字符串相加
你不能使用任何內建的用于处理大整数的库(比如。), 也不能直接将输入的字符串转换为整数形式。,计算它们的和并同样以字符串形式返回。给定两个字符串形式的非负整数。原创 2023-11-01 22:21:27 · 368 阅读 · 0 评论 -
【LeetCode】 前K个高频单词 两种解法
首先想到了map做键值对映射,记录单词的出现次数,最后造个数组排序就行,但是面试一紧张忘了map怎么用了,只能另辟蹊径,改用C++结构体,分别记录单词,出现次数,是否是第一次出现。"the", "is", "sunny" 和 "day" 是出现次数最多的四个单词,返回的答案应该按单词出现频率由高到低排序。"i" 和 "love" 为出现次数最多的两个单词,均为2次。注意,按字母顺序 "i" 在 "love" 之前。出现次数依次为 4, 3, 2 和 1 次。个出现次数最多的单词。原创 2023-10-27 18:03:23 · 260 阅读 · 0 评论 -
【LeetCode】739 每日温度
从左往右遍历,每次记录一个值以及下标,遇到下一个比这个值还大值时,回头去记录这个值对应的下一个最大值的大小和下标,将其记录到一个新的数组里。天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。,表示每天的温度,返回一个数组。原创 2023-10-25 23:23:43 · 262 阅读 · 0 评论 -
【LeetCode】881 救生艇 中等题
贪心算法,对给定数组进行排序后,从左边第一个开始,跟右边最后一个进行配对,由于每艘船最多载两人,如果当前最轻的人和最重的人加起来超过了limit,说明重的人可以自己做一辆船,轻的人再和下一个人进行配对,这样可以保证尽可能地让船载两个人。每艘船最多可同时载两人,但条件是这些人的重量之和最多为。4 艘船分别载 (3), (3), (4), (5)3 艘船分别载 (1, 2), (2) 和 (3),每艘船可以承载的最大重量为。承载所有人所需的最小船数。1 艘船载 (1, 2)原创 2023-10-25 22:23:47 · 305 阅读 · 0 评论 -
【LeetCode】1423 可获得的最大点数(中等题)
第一次行动,不管拿哪张牌,你的点数总是 1。但是,先拿最右边的卡牌将会最大化你的可获得点数。只能从左或者右依次拿牌,那么可以用滑动窗口,直接从最右边开始取K张牌,然后依次从左边开始拿一张牌,并去掉一张右边的牌。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你必须拿起所有卡牌,可以获得的点数为所有卡牌的点数之和。你的点数就是你拿到手中的所有卡牌的点数之和。原创 2023-10-25 22:19:45 · 379 阅读 · 0 评论 -
【华为OD机试】分苹果
A、B两个人把苹果分为两堆,A希望按照他的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算进位 12+5=9(1100 + 0101=9),B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多。输入苹果的数量和每个苹果重量,输出满足A的情况下B获取的苹果总重量。如果无法满足A的要求,输出-1。数据范畴: 1 <= 苹果数目 <= 20000 ,1 <= 每个苹果分量 <= 10000。原创 2023-10-21 22:28:09 · 386 阅读 · 0 评论 -
【华为OD机试】删除目录
假设,根目录的ID为0,且根目录没有父目录,其他所有目录的ID用唯一的正整数表示,并统一编号。现给定目录ID和其父目录ID的对应父子关系表[子目录ID,父目录ID],以及一个待删除的目录ID,请计算并返回一个ID序列,表示因为删除指定目录后剩下的所有目录,返回的ID序列以递增序输出。刚参与的机试,二星题反而比一星的简单,直接上结构体记录节点、父节点和删除标记,用搜索的方式递归往下删除。删除目录8,同时它的子目录10也被删除,剩余2和6两个目录。输出一个序列,表示因为删除指定目录后,剩余的目录ID.原创 2023-10-21 22:14:23 · 286 阅读 · 0 评论 -
【华为OD机试】仿 LISP 运算
将字符串中的括号、计算类型、数值依次拆分出来,然后基于栈的方法依次放入元素,遇到右括号的时候就进行一次计算,之后抛出括号内的元素再将计算后的结果放入栈,直到栈里只有一个元素,就是结果了。当前 OP 类型为 add / sub / mul / div(全小写),分别代表整数的加减乘除法,其中第一个元素 OP 为操作符,后续元素均为其参数,参数个数取决于操作符类型。输入:(sub (mul 2 4) (div 9 3))除法遇除不尽,向下取整,即 3/2 = 1。输入:(mul 3 -7)原创 2023-10-21 20:18:00 · 263 阅读 · 0 评论 -
【华为OD机试】HJ68 成绩排序
第一行输入要排序的人的个数n,第二行输入一个整数表示排序的方式,之后n行分别输入他们的名字和成绩,以一个空格隔开。给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩。进阶:时间复杂度:O(nlogn) ,空间复杂度:O(n)按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开。注:0代表从高到低,1代表从低到高。数据范围:人数:1≤n≤200。都按先录入排列在前的规则处理。原创 2023-10-21 01:38:53 · 321 阅读 · 0 评论 -
【华为OD机试】HJ26 字符串排序
根据三个规则,规则1要对字母进行排序,不区分大小写,这个通过sort函数加重写cmp完成,规则2要按照输入时的顺序进行排序,那么就要记录这个字母的位置,可以用结构体完成,规则3就直接把非字母跳过就行。规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。编写一个程序,将输入字符串中的字符按如下规则排序。规则 3 :非英文字母的其它字符保持原来的位置。如,输入: Type 输出: epTy。如,输入: BabA 输出: aABb。原创 2023-10-21 01:05:34 · 366 阅读 · 0 评论 -
【笔试题】华为研发工程师编程题
【笔试题】华为研发工程师编程题原创 2023-10-18 23:01:07 · 1766 阅读 · 1 评论 -
【华为OD机试】运维日志排序
运维工程师采集到某产品线网运行一天产生的日志n条,现需根据日志时间先后顺序对日志进行排序,日志时间格式为H:M:S.N。思路:将输入的时间缺的0补上,然后使用map存储原日期和格式化后的日期,再对其进行排序。第一行输入一个整数n表示日志条数,1原创 2023-07-30 20:53:48 · 1474 阅读 · 0 评论 -
【华为OD机试】 选修课
现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的降序排序,成绩相同时按照学生的学号升序排序。然后另起一行输出这个班级同时选修两门选修课的学生学号,学号按照要求排序(按照两门选修课成绩和的降序,成绩和相同时按照学号升序学生之间以英文分号分隔。同时选修了两门选修课的学生的学号,如果没有同时选修两门选修课的学生输出NULL,没有同时选修了两门选修课的学生,输出NULL。原创 2023-07-30 16:17:42 · 375 阅读 · 0 评论 -
通俗易懂讲布隆过滤器
不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把他说清楚,讲明白缓存穿透大家看下这幅图,用户可能进行了一次条件错误的查询,这时候redis是不存在的,按照常规流程就是去数据库找了,可是这是一次错误的条件查询,数据库当然也不会存在,也不会往redis里面写值,返回给用户一个空,这样的操作一次两次还好,可是次数多了还.转载 2021-05-20 14:57:32 · 303 阅读 · 0 评论 -
数据库自关联查询——分组topN问题
以前字节面试的一道题,当时对数据库使用程度仅限于基本的连接和增删改查,所以当场就尬住了。。然后,就没有然后了。。先来看问题:一个图书馆的图书管理数据库,图书存在一个表里,每本书有书名,分类,销量;求每个分类里销量最高的前三本书,结果再从大到小排序先来建表SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for book--..原创 2021-02-25 10:50:49 · 297 阅读 · 0 评论 -
Python中的垃圾回收机制及原理
不同于C/C++,像Python这样的语言是不需要程序员写代码来管理内存的,它的GC(Garbage Collection)机制 实现了自动内存管理。GC做的事情就是解放程序员的双手,找出内存中不用的资源并释放这块内存。 下面我们来看看Python的GC是怎么做的:Python自带的解释器CPython主要使用了三种垃圾回收机制(引用计数为主,标记-清除和分代回收为辅):引用计数 标记清除 分代回收下面让我们分别了解下这几种机制:1.引用计数引用计数法Reference Countin转载 2020-11-05 22:40:35 · 522 阅读 · 0 评论 -
HTTP状态码详解
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误HTTP状态码分类HTTP状态码由三个十进制数字组成,第一个十进制数转载 2020-10-12 15:20:28 · 93 阅读 · 0 评论 -
【面试题】100盏灯问题
有100盏灯,从1~100编上号,开始时所有的灯都是关着的,第一次,把所有编号是1的倍数的灯的开关状态改变一次;第二次,把所有编号是2的倍数的灯的开关状态改变一次;第三次,把所有编号是3的倍数的灯的开关状态改变一次;以此类推,直到把所有编号是100得倍数的灯的开关状态改变一次。问,此时所有开着的灯的编号思路分析: 1.当开关状态被改变奇数次时灯是亮着的,而开关状态被改变偶数次时是熄灭的 2.任何一个自然数都能表示为两个整数的乘积(质数的乘积是1和他本身)因此假如一盏灯的编号n是一...原创 2020-10-02 16:07:06 · 1466 阅读 · 0 评论 -
Python的切片操作
Python想要截取列表list、元组tuple或字符串中的部分元素时,切片(Slice)可以方便进行这种操作我们使用方括号,起始偏移量start,终止偏移量end,步长step来定义切片操作格式:[start:end:step][:] 等价于[0:0:0],从起始位置0到结尾的所有元素[start:] 提取从start到末尾的元素[:end] 提取从起始位置0到end-1位置的元素[start:end] 提取从start到end-1位置的元素[start:end:step]..原创 2020-08-29 10:30:52 · 314 阅读 · 1 评论 -
【剑指offer】剪绳子 数论
题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)输出描述:输出答案。示例1输入8输出18比较取巧的做法,将n分成尽可能多原创 2020-08-28 17:36:00 · 234 阅读 · 0 评论 -
【剑指offer】链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。一道经典链表题比较简单高效的解法是采用两个距离为k的指针依次遍历所有结点后左边的慢指针就是倒数第k个结点,类似于尺取法需要对链表进行判空和k非负代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListN.原创 2020-08-28 16:49:03 · 130 阅读 · 0 评论 -
【剑指offer】连续子数组的最大和
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)经典动态规划,只是写代码的方式与平常的竞赛题略有不.原创 2020-08-22 23:27:22 · 124 阅读 · 0 评论 -
【猿辅导笔试题】发水果 逆时针打印矩阵
中午是猿辅导水果时间,小猿会给每个同学发水果。猿辅导有一个矩形的办公区域,共有N 排,每排M个工位。平时小猿按照从第一排到最后一排的顺序发水果,某一天小猿突然发现似乎旋转着发水果是一种更有趣的方式,所以决定试试按照逆时针方向螺旋发水果。已知每个工位有一个数字,表示该工位员工的工号,每个员工的工号不同。已知小猿从(0, 0)位置开始,按照逆时针螺旋的顺序发水果,请输出收到水果的员工工号序列。输入描述:第一行 两个数, 数组行列 N,M接下来 N 行,每行 M 个正整数,表示每个位置的员工工号原创 2020-08-17 23:18:34 · 614 阅读 · 0 评论 -
顺时针螺旋打印二维数组
想起来一道做过两次的竞赛题,明明之后重写了标程第二次还是想不起来怎么写了,愣是连续两次打表过(捂脸题目:1,2,3…n*n 的数字按照顺时针螺旋的形式打印成矩阵,如下:输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 6 5输入数字4, 则程序输出:1 2 3 412 13 14 511 16 15 610 9 8 7...原创 2020-08-17 22:17:33 · 771 阅读 · 0 评论 -
【字节跳动笔试题】找零
Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为的商品,请问最少他会收到多少硬币?输入描述:一行,包含一个数N。输出描述:一行,包含一个数,表示最少收到的硬币数。输入例子1:200输出例子1:17例子说明1:花200,需要找零824块,找12个64元硬币,3个16元硬币,2个4元硬币即可。代码:#include <iostream>usi.原创 2020-06-12 22:49:53 · 459 阅读 · 0 评论 -
【字节跳动笔试题】万万没想到之聪明的编辑
我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBC原创 2020-06-12 22:39:26 · 673 阅读 · 0 评论