![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
华为OD机考真题(C、C++、python)
羊族的希望
坚持方能有所成就。
展开
-
01背包-- 最大报酬|工作安排
小明每周上班都会拿到自己的工作清单,工作清单内包含 n 项工作,每项工作都有对应的耗时时间(单位 h)和报酬,工作的总报酬为所有已完成工作的报酬之和,那么请你帮小明安排一下工作,保证小明在指定的工作时间内工作收入最大化。属于01背包,所以定义dp[i][j]代表处理前i项工作在j的时间段内可获取的最大报酬。t 代表该工作消耗的时长(单位 h, t > 0),w 代表该项工作的报酬。T 代表工作时长(单位 h, 0 < T < 1000000),输出小明指定工作时长内工作可获得的最大报酬。原创 2023-09-14 15:37:11 · 187 阅读 · 0 评论 -
背包问题---怎么选取物品,可以使得背包装的物品价值最大?
思路:对于每件物品,由于是不可分割的放入,所以,就有两种情况:该物品放入背包与该物品不放入背包;②DP[k][w]=max(DP[k-1][w],DP[k-1][w-wi]),当第k件物品的重量不大于w时。问怎么选取物品,可以使得背包装的物品价值最大?问怎么选取物品,可以使得背包装的物品价值最大?那么,状态确定好了,上面所描述的题目中,只要求出DP[4][8]就可以了。①DP[k][w]=DP[k-1][w],当第k件物品的重量大于w时。DP[k][w]怎么求呢,这就是。1)0-1背包问题的描述。原创 2023-09-14 14:21:38 · 332 阅读 · 0 评论 -
华为OD机试 - 滑动窗口最大和
滑动窗口的经典题型,重复题目。原创 2023-09-09 15:46:48 · 260 阅读 · 0 评论 -
字符串子序列II
给定字符串 target和 source,判断 target是否为 source 的子序列。字符串 source 可能会很长(长度~=500,000),而 target是个短字符串(长度原创 2023-09-09 15:03:42 · 175 阅读 · 0 评论 -
阿里巴巴找黄金宝箱(V)--滑动窗口
一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上面贴有一个数字。阿里巴巴念出一个咒语数字k(k=1,=-10000,原创 2023-09-09 00:53:31 · 194 阅读 · 0 评论 -
哈希表-救赎金
【代码】哈希-救赎金。原创 2023-09-04 16:20:23 · 192 阅读 · 0 评论 -
字符串子序列II
给定字符串 target和 source,判断 target是否为 source 的子序列。字符串 source 可能会很长(长度~=500,000),而 target是个短字符串(长度<=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,”abc”是”aebycd”的一个子序列,而”ayb”不是)。第二行为source,长字符串(长度 ~= 500,000)最后一个子序列的起始位置,即最后一个子序列首字母的下标。原创 2023-09-04 00:36:28 · 74 阅读 · 0 评论 -
分苹果-异或
有A,B两个同学想要分苹果。A的想法是使用二进制进行,1 + 1相加不进一位,如(9 + 5 = 1001 +101 = 12)。B同学的想法是使用十进制进行,并且进一位。会输入两组数据,一组是苹果总数,一组分别是每个苹果的重量。如果让B同学在满足A同学的情况下获取到苹果的总重量且返回,如果不能则返回-1。备注:按照A同学的想法 5 + 6 = 3 (101 + 110 = 010)思路:异或运算,排序取最大。原创 2023-09-04 00:16:55 · 47 阅读 · 0 评论 -
补种胡杨树-滑动窗体
N 总种植数量 1<=N<=100000 M 未成活胡杨数量 1<=M<=N M 个空格分隔的数,按编号从小到大排列 K 最多可以补种的数量 0<=K<=M。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?标题:补种未成活胡杨 | 时间限制:1秒 | 内存限制:262144K。补种第7棵树,最多的连续胡杨棵树为6(5,6,7,8,9,10)补种到2或4结果一样,最多的连续胡杨棵树都是3。原创 2023-09-04 00:15:32 · 297 阅读 · 0 评论 -
dfs之深度遍历--岛屿数量
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。1.通过字符二维数组,从左上到右下,找到第一个'1'出现的位置。(水)组成的的二维网格,请你计算网格中岛屿的数量。2.通过该位置,进行深度搜索,将相邻的1清零。此外,你可以假设该网格的四条边均被水包围。原创 2023-08-23 14:18:30 · 82 阅读 · 0 评论 -
dfs之单词搜索
链接:https://leetcode.cn/problems/word-search/solutions/1312399/dan-ci-sou-suo-cyu-yan-xiang-jie-chao-ji-rvqm/单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。遍历条件:按照当前位置的上下左右4个方向进行遍历,flag的的值为0,且下一个字母与word匹配,执行条件:将flag对应的row,col位置值1,表示已经走过该坐标。作者:我自横刀向天笑。原创 2023-08-23 10:03:02 · 89 阅读 · 0 评论 -
dfs之有重复字符串的排列组合
考古问题,假设以前的石碑被打碎成了很多块,每块上面都有一个或若干个字符,请你写个程序来把之前石碑上文字可能的组合全部写出来,按升序进行排列。输入输出示例仅供调试,后台判题数据一般不包含示例。输入输出示例仅供调试,后台判题数据一般不包含示例。原创 2023-08-22 10:55:11 · 101 阅读 · 0 评论 -
华为OD机考--【磁盘容量排序】
请对它们按从小到大的顺序进行稳定排序,例如给定5块盘的容量,1T,20M,3G,10G6T,3M12G9M排序后的结果为20M,3G,3M12G9M,1T,10G6T。磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T = 1024G,1G = 1024M,现在给定n块磁盘的容量,由一个或多个格式为mv的子串组成,其中m表示容量大小,v表示容量单位,例如20M,1T,30G,10G6T,3M12G9M。1G和1024M容量相等,稳定排序要求保留它们原来的相对位置,故1G在1024M之前。原创 2023-08-03 21:59:13 · 1528 阅读 · 0 评论