华为OD机考练习
杨氏985
季线上的C点
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
素数的判断
今天学到另外一种计算素数的方法,速度0毫秒。常用的素数判断,大Int要3xxx毫秒。原创 2024-05-06 23:18:23 · 200 阅读 · 0 评论 -
员工派遣(200)
这题首先想到的就是暴力计算,很简单。网上有很多二分法,没研究。原创 2024-04-30 15:28:38 · 228 阅读 · 0 评论 -
矩阵匹配-od
这个题还是有难度,200分值了。上面链接有描述它的解法,二分查找+二分图,因为早前我已经见识过二分图,所以这块理解不是很难。倒是它的第K大,转换位N-K+1的概论是非常牛逼但也容易绕的地方。这个题我花了1个小时编程java代码,所以如果对这解题思路不理解,建议还是用暴力吧,毕竟暴力不能满分但编程确简单,节省时间。原创 2024-04-30 12:14:19 · 348 阅读 · 2 评论 -
剩余银饰的重量
【代码】剩余银饰的重量。原创 2024-04-29 19:07:42 · 236 阅读 · 0 评论 -
GPU 调度/执行时长
这题只要看几个测试用例就能知道意思,单纯看描述确实有些不清不楚,od里面有不少题描述是含糊不清的。首先这题基本不涉及算法,简单遍历即可,多余处理不了的任务把它放到一下一个任务去处理。原创 2024-04-29 17:22:46 · 226 阅读 · 0 评论 -
构成指定长度字符串的个数 / 字符串拼接
递归排列,对待去重的问题一律先排序。原创 2024-04-29 15:30:14 · 357 阅读 · 3 评论 -
用连续自然数之和来表达整数
【代码】【无标题】原创 2024-04-29 14:44:41 · 223 阅读 · 2 评论 -
查找一个有向网络的头节点和尾节点
这个题考察基础的dfs遍历, 重点在解决环的问题,需要用一个集合存储自己访问的路径,如果下一个访问的点已经存在路径中,说明这是一个环,直接退出递归循环。原创 2024-04-29 11:50:50 · 319 阅读 · 0 评论 -
图像物体的边界 od
知乎上用的是并查集,我这边用的是循环队列。找边界就是找任何两个5之间的距离,通过观察发现两个5之间距离只要满足绝对值: x1-x2<=3 或者 y1-y2<=3就会出现边界相交。既如此,那就遍历计算每个5与剩下5之间的坐标距离,查找过程用到了队列,因为A与B本不相交,但A与C,B与C相交就会导致A-B相交,所以用队列可以把这种乱七八糟的关系给串起来。原创 2024-04-28 22:13:54 · 338 阅读 · 0 评论 -
数据最节约的备份方法 od
前提先把数据按大-》小排序,然后双指针向右移动,遵循原则,在不超过500容量情况下,尽可能的消耗大数,小数留到后面,如 300 200 100 100, 300+200=500 300+100+100=500优先用前面的组合。这个题跟那个【信道分配】有类似之处,信道分配更复杂需要回溯,这个简单只需要正向遍历即可。原创 2024-04-26 16:35:28 · 282 阅读 · 1 评论 -
连续出牌数量-od
手里给一副手牌,数字从0-9,有r(红色),,g(绿色),b(蓝色),y(黄色)四种颜色,出牌规则为每次打出的牌必须跟上一张的数字或者颜色相同,否则不能抽选。选手应该怎么选才能使得抽选的次数最大,并且输出这个最大次数。考察全排列,比较简单。我用0-3代表rgby,懒得转化。第二行 牌的颜色(r,g,b,y四种颜色表示)第一行 牌的数值n (1<=n<=9)原创 2024-04-24 23:24:07 · 191 阅读 · 0 评论 -
田忌赛马-od
给定两个只包含数字的数组a, b, 调整数组a里面数字的顺序,使得尽可能多的a[i] > b[i]。数组a和b中的数字各不相同。输入的第一行是数组a中的数字,其中只包含数字,每两个数字之间相隔一个空格,a数组大小不超过10。输入的第一行是数组b中的数字,其中只包含数字,每两个数字之间相隔一个空格,b数组大小不超过10。最优结果只有一个,a = [11, 20, 8],故输出1。考察全排列,排列之前队数组a进行排序,目的是去重。输出所有可以达到最优结果的a数组数量。输出所有可以达到最优结果的a数组数量。原创 2024-04-24 21:31:13 · 949 阅读 · 2 评论 -
服务中心的最佳位置
这类题一种简单暴力解法,先找到所有区间最左侧值最小值,最右测最大值,然后遍历所有位置到服务列表的距离和,取最小和即可。但这个题还有更优化的地方,就是中位数原理,既在一条直线上的所有点,中点到其他点的距离和一定最小。那就可以先找到所有区间起点的中位数,再找所有终点的中位数,会得到left->right一个更小的区间,然后遍历这个区间即可,大大缩小范围。的位置,并希望能够以此为依据为新的服务中心选址:使服务中心。,请返回最佳的服务中心位置到所有区域的距离总和的最小值。表示区域的右侧终点,设择服务中心的位置为。原创 2024-04-24 17:21:23 · 387 阅读 · 0 评论 -
OD机试 2024 考试题 【幼儿园篮球游戏】
其中3、1、2、4、5的取出场景为:->连续放入1、2、3号->从右边取出3号->从左边取出1号->从左边取出2号->放入4号->从左边取出4号->放入5号->从左边取出5号简答起见,我们以L表示左,R表示右,此时取出篮球的依次取出序列为“RLLLL”。如老师按顺序放入1、2、3、4、5共有5个编号的篮球,那么小朋友可以依次取出编号为1、2、3、4、5,或者3、1、2.4、5编号的篮球,无法取出5、1、3、2、4编号的篮球。原创 2024-04-23 15:31:56 · 672 阅读 · 0 评论 -
最大社交距离【华为OD机试JAVA题解】
4,关于离开,按遍历去处理有些麻烦,是否有一种更简单的方式,因为如果离开1个人,再进入1个人,其实就是一个相互抵消,优先队列依然会回到原来的状态,相互抵消了,既然这样就会简单很多,比如总的seatOrLeave有10次进入,3次离开,那就进处理7次进入,完全不用管离开,有点脑筋急转弯,有空可以搞点数据试验下。3,关于离开,-4表示索引4的人会离开,那可以顺序遍历队列,检查起点和中点为4的(理论上最多两个节点,且是前后相邻)进行合并后再入队。最后进来的员工,他会坐在第几个位置,如果位置已满,则输出 -1。原创 2024-04-23 11:39:17 · 1055 阅读 · 1 评论 -
华为OD机试统一考试D卷C卷 - 信道分配
b,然后启动递归从大到小遍历,递归分递推和回溯,首先在递推的过程中遵守一个原则,如果能满足,则尽量多的消耗这个数,不满足则去下一个低阶,比如D=30,遇到R=32的时候,32此时太大,用掉可能会浪费,先不使用看下一个更小的适不适合,R=16,用掉1个不够,用掉2个又超了会浪费,那就先用1个,R=16的map映射就变为16->2。此时D还剩14,到R=8的时候可以使用 8->0,D=6,R=4数量为0跳过,R=2,可以最多使用3个刚好D=0,2->2。第二行,R+1个数字,用空格隔开。第一行,一个数字R。原创 2024-04-23 16:33:37 · 1233 阅读 · 0 评论 -
结队编程-华为OD
从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分别为 level[i],level[j],level[k],结队小组满足 level[i] < level[j] < level[k] 或者 level[i] > level[j] > level[k],其中 0 ≤ i < j < k < n。这个题不该算200分,比较简单,题意已经限制索引是从小到大,三重循环即可搞定。第二行输入:按序号依次排列的员工的职级 level,中间用空格隔开。同一员工可以参加多个小组。第一行输入:员工总数 n。原创 2024-04-24 10:40:22 · 391 阅读 · 0 评论 -
可以处理的最大任务-华为OD
贪心思想,假如每个任务都是在最后一天才去作,用每个任务的结束时间倒叙,其次开始时间也要倒叙,前后结束时间相比较,若相同则当前结束时间往前推一天。原文链接:https://blog.youkuaiyun.com/weixin_45228198/article/details/136890860。tasks[i] = [si, ei],该任务可以在si原创 2024-04-24 12:37:33 · 494 阅读 · 2 评论 -
华为OD机试 - 根据IP查找城市
注:最佳匹配即包含待查询IP且长度最小的IP段,比如例子中3.4.4.4最佳匹配是City2=3.3.3.3,4.4.4.4,5.5.5.5的最佳匹配是City3=2.2.2.2,6.6.6.6。这个题解题思路同【可以处理的最大任务-华为OD】,将IP段的开始结束换算为long,然后结束IP降序,开始IP升序,将验证的IP与结束IP依次比较,发现最后那个大于等于自己的结束IP就是答案。第二行为查询的IP列表,多个IP采用英文逗号 ',' 分隔,最多不超过10000条。城市名=起始IP,结束IP。原创 2024-04-24 15:18:08 · 504 阅读 · 0 评论
分享