首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛客877483763号
获赞
43
粉丝
3
关注
3
看过 TA
193
西北工业大学
2014
Python
IP属地:江西
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客877483763号吗?
发布(55)
刷题
牛客877483763号
2023-04-19 17:44
Python
华为OD面经
3月30日 线上机考,线上机考通过之后,进行了性格测试、技术一面、技术二面、HR面和综面。3月31日 性格测试:我基本是按照自己的真实性格进行测试的,当然面对三个选项有好有不好的,我选最符合的肯定是在好的里面选,最不符合的是在不好里选。但是经常比较纠结的是三个都是优点,然后让我选最符合和最不符合的,以及三个都是缺点,但是要选一个最符合和最不符合的。这种情况只能根据自己感觉选,因为后面题目还很多,选假的我怕后面冲突。好在最终性格测试是过了的。4月8日 技术一面:先是自我介绍,然后开始聊天,问的工作经验,了解我做的项目,基本没有问我技术的问题。后面半小时手撕代码,直接让我在力扣上搜题号1775,在力扣上做。中等难度的数组题,时间30分钟,可惜我没有撕出来。代码我是写了的,没有100%通过,只通过了部分。题目真的不难,我面试完后写出来了,甚至我想了几种解法,但是没啥用。面试官人很好,我当时很紧张,也有点急躁,面试官说可以宽限我几分钟。4月10日 技术二面:自我介绍,聊项目工作,然后根据我的工作内容(因为我第一份工作的工作内容就有处理平台bug)问我遇到的最难解决的bug是什么,怎么解决的。后面聊天中我提到了锁,又顺着往下问了我锁的问题。技术方面的问题问得不多,然后是手撕代码,面试官说时间是10-20分钟,我还紧张了一下,感觉时间很短,但是拿到题目发现真的特别特别简单。我看到题目和面试官说思路,面试官说,你直接开始写吧,不过我还是先说了我的思路,说完,面试官直接肯定了我的思路(面试官人真的很好)。然后我用了10分钟写完,之后面试官再让我讲思路。4月14日 HR面:这个就比较轻松了,和HR聊一下之前公司离职的原因,聊了以后希望从事的工作。4月17日 综面:问了我的职业规划,空闲时间业务爱好,期望薪资,为什么想入职华为OD,然后还问了我的家庭情况。其实我面试得挺糟糕的,因为我其实没有什么职业规划,我就希望我可以一直做开发工作,至于具体做什么,以后会怎样,看我以后的工作。我回答了技术架构,对方追问我是否了解技术架构需要掌握哪些知识,我不知道。问我平常是否会去主动学习相关知识,我也不会(因为我提到我学习都是工作中遇到了事,或者领导让我去了解XX,我才会去学)。我都感觉我要挂了,最后对方提了我以后的薪资结构,然后我才感觉我好像过了。或许是因为我比较真诚?
投递华为等公司10个岗位
0
点赞
评论
收藏
转发
牛客877483763号
2023-02-15 16:15
Python
题解 | #旋转数组#
i 移动到 i+m,就是让a[i+m]=a[i],需要注意 i+m 是否越界了,如果越界了,就减去 n。同时要保存a[i+m]的值,然后i 变成 i+m,然后一直重复这个操作就可以。但是要注意,如果 m 和 n 不是互质的,最大公约数为maxcom,则 i 和 i+m 一定是0或maxcom的倍数。移动了n / maxcom后,下标为maxcom整数倍的数组已经在正确的位置,之后移动下标对maxcom取余为1到maxcom-1的下标。 from posix import major # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 旋转数组 # @par...
0
点赞
评论
收藏
转发
牛客877483763号
2023-02-14 16:20
已编辑
Python
题解 | #最大正方形#
最笨的一种方法,一行行遍历,找matrix[i][j]为1,往右找到连续的max_l个1,就假定最大正方形的边长是max_l,然后从j列i行往下遍历到i+max_l,如果中间有0,说明正方形边长要变短,更新边长max_l。之后遍历matrix[i+1][j+1]到matrix[i+max_l][j+max_l],中间matrix[m][n]为0需要根据matrix[m][n]到matrix[i][j]较长的部分修正max_l。 import java.util.*; public class Solution { /** * 最大正方形 * @param mat...
0
点赞
评论
收藏
转发
牛客877483763号
2022-01-11 11:23
Python
题解 | #寻找第K大#
NC88 寻找第K大 描述 有一个整数数组,请你根据快速排序的思路,找出数组中第 k 大的数。 给定一个整数数组 a ,同时给定它的大小n和要找的 k ,请返回第 k 大的数(包括重复的元素,不用去重),保证答案存在。 要求:时间复杂度 O(nlogn),空间复杂度 O(1) 数据范围:0≤n≤1000, 1≤K≤n,数组中每个元素满足 0≤val≤10000000 思路:用堆,最大堆,我对于堆的知识已经完全完全忘记了,这次是在网上看了之后,再自己改进了一点点。最大堆就是根节点的值比子节点都大。如果下层节点能保证比子孙节点大,那么其父节点只需要比较自己的左右子节点就可以保证比子孙节点都大。所以...
0
点赞
评论
收藏
转发
牛客877483763号
2022-01-07 17:22
已编辑
Python
题解 | #实现二叉树先序,中序和后序遍历#
NC45 实现二叉树先序,中序和后序遍历 描述:给定一棵二叉树,分别按照二叉树先序,中序和后序打印所有的节点。 数据范围:0≤n≤1000,树上每个节点的val值满足 0≤val≤100 要求:空间复杂度 O(n),时间复杂度 O(n) 思路:既然是二叉树那就递归,先序递归preorder,结果是preResult;中序递归midorder,结果是midResult;后序递归afterorder,结果是afterResult。 先序的结果是根节点,左子树,右子树的顺序,所以先序的代码就是先将根节点的值保存入preResult,再左子树先序递归preorder,然后右子树先序递归preorder...
0
点赞
评论
收藏
转发
牛客877483763号
2022-01-07 15:08
Python
题解 | #最小的K个数#
NC119 最小的K个数 描述 给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。 数据范围:0≤k,n≤10000,数组中每个数的大小0≤val≤1000 要求:空间复杂度 O(n) ,时间复杂度 O(nlogn) 思路:这题挺简单的,就是定义一个数组result存放要返回的结果,result升序排列。从input中取出一个数i,如果 i >= result[k-1],就不操作。如果 i < result[k-1]就把i存放到result中,用二分的...
0
点赞
评论
收藏
转发
牛客877483763号
2022-01-07 14:27
Python
题解 | #在二叉树中找到两个节点的最近公共祖先#
NC102 在二叉树中找到两个节点的最近公共祖先 描述 给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。 数据范围:1≤n≤1000,树上每个节点的val满足 0<val≤100 要求:空间复杂度 O(1),时间复杂度 O(n) 注:本题保证二叉树中每个节点的val值均不相同。 思路:二叉树的题就直接递归了(应该有非递归的方法,用while循环,我懒得想)。先找到val为o1或o2的节点。找到了返回T,否则返回F。本来想返回布尔值的,但是我担心如果公共节点的值为0,我写if的时候0会不会当作False,所以就用T...
0
点赞
评论
收藏
转发
牛客877483763号
2022-01-07 11:27
Python
题解 | #最长无重复子数组#
NC41 最长无重复子数组 描述 给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。 子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组 数据范围:0≤arr.length≤10^6,0 < arr[i]≤10^5 要求:空间复杂度 O(n),时间复杂度 O(nlogn) 思路:将数组按照 {值:下标}的形式保存在a中。比如[2,3,4,5]保存后a={2:0,3:1,4:2,5:3}。如果有重复的数字,则会更新下标,如[2,2,3,4,3],则是{2:0}之后{2:1},{2...
0
点赞
评论
收藏
转发
牛客877483763号
2022-01-05 10:18
Python
题解 | #求二叉树的层序遍历#
NC15 求二叉树的层序遍历 描述:给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如:给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], [15,7] ] 提示: 0 <= 二叉树的结点数 <= 1500 思路:深度优先遍历二叉树(虽然大学学过,但是我只记得名字,怎么遍历完全忘记了,不过不重要)。题目给的例子就是每一层的数据在一个数组里面。如果最终要返回的数据用result保存,则根节点(第0层)在结果result[0]中,值为[3]。根节点的子(第1层)为result[1]=[9,20]。根节点...
0
点赞
评论
收藏
转发
牛客877483763号
2022-01-04 15:54
Python
题解 | #二分查找-II#
NC105 二分查找-II 描述 请实现有重复数字的升序数组的二分查找 给定一个 元素有序的(升序)长度为n的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的第一个出现的target,如果目标值存在返回下标,否则返回 -1 数据范围:0<=n<=100000 进阶:时间复杂度O(logn),空间复杂度O(n) 思路:二分法,先找到target,如果nums[middle]==target,且nums[middle-1]<target,说明middle就是要找的下标。while循环结束后,还没有return过的,可能target在数组两边,nu...
0
点赞
评论
收藏
转发
牛客877483763号
2021-12-31 17:23
Python
题解 | #设计LRU缓存结构#
NC93 设计LRU缓存结构 描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为 k ,并有如下两个功能 set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的value值 提示: 1.某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的,然后都会刷新缓存。 2.当缓存的大小超过k时,移除最不经常使用的记录。 3.输入一个二维数组与k,二维数组每一维有2个或者3个数字,第1个数字为opt,第2,3个数字为key,value 若opt=1,接下来两个整数key, value,表示set(ke...
0
点赞
评论
收藏
转发
牛客877483763号
2021-12-31 15:31
已编辑
Python
题解 | #反转数字#
NC57 反转数字 描述 给定一个32位的有符号整数num,将num中的数字部分反转,最后返回反转的结果 1.只反转数字部分,符号位部分不反转 2.反转后整数num超过 32 位的有符号整数的范围 [−231, 231 − 1] ,返回 0 3.假设本题不允许存储 64 位整数(有符号或无符号,即C++不能使用long long ,Java不能使用long等) 数据范围: -2^31 <= x <= 2^31-1 思路:通过对10取余,获取个位数,获取的数是结果的高位,原数据每次/10,再%10获取每位的数字。结果result每次*10,获取到的个位数加入到结果result中。这...
0
点赞
评论
收藏
转发
牛客877483763号
2021-12-28 18:00
Python
题解 | #合并二叉树#
NC117 合并二叉树 描述 已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。 数据范围:树上节点数量满足 0≤n≤500,树上节点的值一定在32位整型范围内。 进阶:空间复杂度 O(1) ,时间复杂度 O(n) 思路:递归,目前遇到的二叉树的题真的特别简单,几分钟就可以编写代码通过的简单。就是根节点和根节点合并,左右子节点合并后,成为合并后的根节点的左右子节点。就这么简单。 # class TreeNode: # def __init__(self, x): # self.val = x # ...
0
点赞
评论
收藏
转发
牛客877483763号
2023-02-07 18:25
已编辑
Python
题解 | #二进制中1的个数#
NC120 二进制中1的个数 描述 输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。 数据范围:- 2^31 <= n <= 2^31 即范围为: −2147483648 <= n <= 2147483647 思路:题目挺简单的,正数就取余算1的个数,因为其它位为0。负数就计算0的个数,因为其它位为1,所以用32减去0的个数。 # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param n int整型 # @return int整型 # class Solution: def Numbe...
0
点赞
评论
收藏
转发
牛客877483763号
2021-12-28 17:26
Python
题解 | #删除有序链表中重复的元素-I#
NC25 删除有序链表中重复的元素 描述 删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 例如: 给出的链表为1→1→2,返回1→2. 给出的链表为1→1→2→3→3,返回1→2→3. 数据范围:链表长度满足 0≤n≤100,链表中任意节点的值满足∣val∣≤100 进阶:空间复杂度 O(1),时间复杂度 O(n) 思路:这题目简单得不能再简单了,遍历一遍,然后删掉重复的就好了。如果p.val == p.next.val,就删除p.next。就是直接将p.next.next 设置为p.next。如果不相同p就往后移一步。 # class ListNode: ...
0
点赞
评论
收藏
转发
1
2
3
4
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务