首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
琵琶语
获赞
5
粉丝
5
关注
0
看过 TA
37
北京工商大学
2018
算法工程师
IP属地:北京
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑琵琶语吗?
发布(17)
评论
刷题
琵琶语
关注TA,不错过内容更新
关注
2023-04-01 19:15
北京工商大学 算法工程师
题解 | #【模板】二分查找、堆#
二分查找 class Solution: # 二分查找, 必须是升序数组。 def search(self , nums: List[int], target: int) -> int: # write code here l = 0 r = len(nums) - 1 # 从数组首尾开始, 直到两者相遇 while l <= r: # 求中间值 tgt_ind = l +int((r-l)/2) # 检查中间值是否...
0
点赞
评论
收藏
分享
2023-03-31 13:42
北京工商大学 算法工程师
题解 | #反转链表#
反转链表思路:cur.next = pre # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # @param head ListNode类 # @return ListNode类 class Solution: def ReverseList(self , head: ListNode) -> ListNode: # write code here # 空链表处理 if head ==...
0
点赞
评论
收藏
分享
2023-03-29 14:12
北京工商大学 算法工程师
题解 | #二叉树的前序遍历#
二叉树遍历思路:没有返回,用一个self变量保存遍历的值。用递归前序遍历 - 根左右 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # @param root TreeNode类 # @return int整型一维数组 class Solution: res = [] def preorderTraversal(self , root: TreeNode) -> Li...
0
点赞
评论
收藏
分享
2023-03-29 12:22
北京工商大学 算法工程师
题解 | #岛屿数量#
此题雷同lc的200题。题目描述解题思路 遍历每个点,如果当前点为1,则将岛屿数量加1,并以当前点为起点进行深度优先搜索,进入递归; 将所有与当前点联通的1标记为0,表示已经访问过。遍历当前点的上下左右点,如果不越界且为1,继续以当前点递归; 最后返回岛屿数量。 # 判断岛屿数量 # @param grid char字符型二维数组 # @return int整型 # 首先遍历每个点,如果当前点为1,则将岛屿数量加1,并以当前点为起点进行深度优先搜索,将所有与当前点联通的1标记为0,表示已经访问过。最后返回岛屿数量。 class Solution: def find(self,grid...
0
点赞
评论
收藏
分享
2023-03-28 19:18
北京工商大学 算法工程师
广播服务器 - 华为OD机试2022
题目描述解题思路思路:本质是图的遍历, 计算多少个连通图。初始化一个邻接表,key和value相等,数量是所有的行数(方阵)遍历所有的位置, (当前点是0也不考虑,i==j这种情况是自己和自己相连不考虑。) 考虑的是当前点是1and i!=j, 后者表示两个不同的点相连。如果这两个点在tag中的标号也就是value相同,表示连通,不作任何操作,如果不同,表示不连通,需要将两者连通起来,也就是使两者的value相等,大的标号向小的标号对齐。(之前看最小生成树就是这样做的,小的标号向大的标号看齐就会错误,不知道为啥。)最后把value做个集合,求个数就可以了。python代码 ''' 思路:本质是...
查看3道真题和解析
投递华为等公司10个岗位 >
0
点赞
评论
收藏
分享
2023-03-28 12:25
已编辑
北京工商大学 算法工程师
题解 | #判断子序列#
判断子序列解题思路双指针操作 ''' 思路:双指针操作 1. 首先判断子串S的长度是否大于原串T的长度,若是则无法匹配,直接返回False。 2. 重点:双指针操作。定义一个变量match_s表示匹配到的字符,一个变量ind_S表示子串S的当前索引。然后遍历原串T中的每一个字符,如果该字符与子串S当前索引指向的字符相同,则将该字符加入match_s中,并将ind_S加一。 3. 最后判断match_s是否等于子串S,若是则匹配成功,返回True,否则返回False。 ''' class Solution: def isSubsequence(self , S: str, T: str)...
0
点赞
评论
收藏
分享
2023-03-27 18:31
已编辑
北京工商大学 算法工程师
众数和中位数-华为OD机试 2022
题目描述解题思路先求众数。再求中位数。Python代码 ''' 解题思路 1. 求众数. 每个数字的频次用hash存起来,再求最多次数的数字,存成数组。 2. 求中位数 ''' def mode(lst): # 求众数 hash = dict() for l in lst: if l in hash: hash[l] += 1 else: hash[l] = 0 res = [] # 众数 most = 0 # 次数 for key in hash: ...
查看2道真题和解析
投递华为等公司10个岗位 >
0
点赞
评论
收藏
分享
2023-03-29 14:14
已编辑
北京工商大学 算法工程师
红黑图-华为OD机试 2023
题目描述注意:不能保证所有节点都是连通的。示例1:输入:4 41 22 43 41 3输出: 7说明:4个节点,4条边,1号节点和2号节点相连,2号节点和4号节点相连,3号节点和4号节点相连,1号节点和3号节点相连,若想必须保证相邻两个节点不能同时为红色,总共7种方案。结题思路python代码 # 这个我还没搞清楚,有大佬按照下面这个思路,翻译一下Python,粘贴到评论处吗? java代码 //对每个节点可能的染色进行搜索。对每个未染色的节点分两种情况:当染黑色的情况下,不对其他节点产生影响;当染红色的情况下,要查找这个节点连接的所有边,找到相邻节点并直接规定为黑色。每当所有节点被染色...
查看2道真题和解析
投递华为等公司10个岗位 >
0
点赞
评论
收藏
分享
2023-03-31 10:44
已编辑
北京工商大学 算法工程师
网上商城优惠活动-华为OD机试 2023
题目描述解题思路因为每人的优惠活动只有一次,92折只能用一次,无论92折券给了几张,都算一张。无门槛放在最后算,这样比先无门槛后满减或打折都省钱。由于最多2种优惠券,且每种是一次使用,不能拆开使用。(比如用一张满减,再用一张打折,再用一张满减。)。结合第2条,6种组合只剩下4种,有:满减+打折,满减+无门槛,打折+满减,打折+无门槛。取价格最低,价格相同取优惠券少的那个。需要考虑优惠券为0的情况python代码 ''' 解题思路 1. 因为每人的优惠活动只有一次,92折只能用一次,无论92折券给了几张,都算一张。 2. 无门槛放在最后算,这样比先无门槛后满减或打折都省钱。由于最...
查看3道真题和解析
投递华为等公司10个岗位 >
0
点赞
评论
收藏
分享
2023-03-25 12:36
北京工商大学 算法工程师
题解 | #矩阵乘法计算量估算#
此题和HJ54表达式求值比较像。 ''' 假设矩阵乘法的矩阵存在a中,计算的规则存在s中。 a = [[m,n], [n,p], [p,q]] s = (A(BC)) 1. if遇到左括号,找对应的右括号,递归。括号内的res更新, shape计算完入栈 2. elif遇到字符,该字符与A减法得到数组中的索引,ord(s[l]) - ord('A'), 将对应数组的索引取出入栈 3. if 入栈元素==2,计算矩阵计算次数res,并将计算得到的矩阵shape入栈 注意的点: 这里res作为global, 按理是返回shape和res,这里方便期间,只返回shape t2的标识...
0
点赞
评论
收藏
分享
2023-03-25 12:37
已编辑
北京工商大学 算法工程师
题解 | #表达式求值#
''' 它首先定义了一个compute函数,用于递归计算表达式的值。在这个函数中,使用了循环遍历字符串s中的每一个字符,并根据不同的情况进行处理。 如果遇到数字,则将其加入到num中; 如果遇到左括号,则递归调用compute函数计算括号内的表达式的值num; 如果遇到运算符或者字符串结尾,则根据运算符将num与栈顶元素进行相应的运算,并将结果压入栈中; 最后,将栈中所有元素相加即可得到整个表达式的值。 ''' def compute(s, left, right): op = "+" # 初始化计算符为加号,后续遇到操作符就更新 num = 0 # 计算当前值 st...
0
点赞
评论
收藏
分享
2023-03-23 14:55
已编辑
北京工商大学 算法工程师
题解 | #kmp算法#
暴力枚举法时间复杂度:- 外层循环遍历了所有可能的起始位置,时间复杂度为 O(len(T)-len(S)+1)- 内层循环遍历了字符串 S 的所有字符,时间复杂度为 O(len(S))- 总时间复杂度为 O((len(T)-len(S)+1) * len(S)) ------------ 这里不满足题目要求空间复杂度:- 使用了常数个变量,空间复杂度为 O(1) class Solution: def find(self , S: str, T: str) -> int: # write code here res = 0 # 出...
0
点赞
评论
收藏
分享
2023-03-22 13:22
北京工商大学 算法工程师
题解 | #包含不超过两种字符的最长子串#
LeetCode1839-所有元音按顺序排布的最长子字符串 # 1.首先如果数组长度小于5的话,不可能满足美丽的定义,将这种情况提前排除 # 2.遍历时分了几种情况判断: # - 如果当前字符比上一个字符大于,当前子串长度+1, 种类+1 # - 当前字符比上一个字符等于,当前子串长度+1 # - 当前字符比上一个字符小,当前字串不美丽,重置长度和种类 # 3.如果当前子字符串没有以a开头的话,那么在进行下一个子字符串开始遍历之前,元音种类一定不会达到5,所以只要判断种类即可 # 4.当元音种类为5的时候,持续维护更新最终结果,取出最大值即可 class Solution: ...
0
点赞
评论
收藏
分享
2023-03-21 12:14
北京工商大学 算法工程师
题解 | #整数与IP地址间的转换#
10进制转换2进制 def decimalTobinary(decimal,binary_nu): # decimal: 10进制int # binary_nu: 二进制位数 '10进制转换2进制' binary = "" # 初始化二进制数为空字符串 while decimal > 0: # 当十进制数大于0时 remainder = decimal % 2 # 计算余数 binary = str(remainder) + binary # 将余数添加到二进制数的最前面 decimal = ...
0
点赞
评论
收藏
分享
2023-03-20 14:48
已编辑
北京工商大学 算法工程师
题解 | #跳台阶-斐波那契数列#
# @param number int整型 # @return int整型 class Solution: def jumpFloor(self , number: int) -> int: # write code here # f(n)=f(n-1)+f(n-2), 初始化f(0)=f(1)=1,后续根据公式计算 a = 1 b = 1 res = 1 for i in range(2, number+1): res = a + b ...
0
点赞
评论
收藏
分享
1
2
关注他的用户也关注了:
牛客网
牛客企业服务