大连网站关键词推广,html5网站搭建,wordpress表单样式,济南网站优化分析目录 一、考研二战#xff0c;入职华为#xff0c;反向调剂电子科大深圳下面分享一道2023 B卷 朋友抽中题 简易内存池#xff1a;二、题目描述三、输入描述四、输出描述样例#xff1a;输出样例#xff1a; 五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明… 目录 一、考研二战入职华为反向调剂电子科大深圳下面分享一道2023 B卷 朋友抽中题 简易内存池二、题目描述三、输入描述四、输出描述样例输出样例 五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明4、再输入5、再说明6、如果走后一次请求的是20会怎么样呢 八、漫画算法2小灰的算法进阶参与方式 大家好我是哪吒。
最近一直在刷华为OD机试的算法题坚持一天三道题的节奏已经三个多月了刷了270多道题刚开始也有过想放弃的想法刷一道卡一道一道题要用1小时因为太菜了吗哎一言难尽
随着时间的推移感觉自己慢慢上道了一道题用不上1个小时了哈哈这就是进步嘛
一、考研二战入职华为反向调剂电子科大深圳
不经意间在网上看到一个帖子《考研二战入职华为反向调剂电子科大深圳》写的真不错分享给大家。
加入华为OD后给我的感觉比想象中或者说比网上大部分的说法都要好。
我觉得在这里能学到很多东西毕竟是大公司平台也大能接触到的牛人也多。
我觉得一个初来乍到的应届本科生受到歧视也正常周围都是名校硕博作为一个新人我没有任何理由骄傲。技不如人甘拜下风虚心一点好好学习也是好的。
另外我觉得无论是校招进华为正式还是社招进华为od我感觉没有想象中区别那么明显。
技术岗还是靠实力说话。我们的od员工和正式员工办公上没有一点差别甚至我们组的美本的正式员工第一个月都不知道我们之间有什么区别。
我的本科同班同学校招进华为的也搞不懂我工号和他们正式员工工号的区别。
我的od同事有7年的ios开发经验是从隔壁某个体面的硬件大厂跳槽过来的因为工作经验丰富反而成为了我和一个正式员工应届的老师。
我相信以他的实力一年期满很快就能完成转正。即便转正名额给他而不给我我也服气的。
我觉得在华为有一个巨大的优势就是信息上的优势。
毕竟是在华为了解到的资讯都是第一手的很多消息非常通畅。
比方说我之前在学校完全不能理解大公司是怎么招人的而在这里通过别人的只言片语能对这个流程有个初步的理解感受。
包括下文中我提到了解非全硕士的过程华为这个平台也给我提供了第一手的信息。
对于我的朋友行业外的肯定不会认可我的本科但是我直接笼统地说我在华为工作外行便会肃然起敬。
而行业内的人我稍微解释一下他们也能理解行业内还是看你的技术的我还是非常肯定我自己的专业实力的。
并且行业内也知道我的本科杭州电子科技大学是华为目标院校可以直接华为校招成为正式员工的。
比方说我这个工作除了签协议是和德科公司签的以外别的部分都挺完美的了是软件开发的技术岗、华为核心部分、利于项目经验积累、待遇不错。
毕竟我就是正儿八经的华为的社招错过了校招的正式招聘时间才只能和德科签合同的。
反正对于我来说每个人要找到适合自己的找到自己的需求。需要什么就去拿什么。入职的这一个月见识到了很多东西收获颇丰进步巨大。每天都在不停地自我更新中感觉很好。
关于华为od网上诟病最多的就是转正华为正式员工部分了。甚至我曾经做过hr的表姐都告诫我“千万别去华为od因为od永远不可以转正。”
我多方打听包括反复跟招我的人确定转正情况。对方答复说我们部门有30%的转正率。我也通过其他不可能跟招我的人有联系的人确认了下确认这个部门的转正率确实是30%。这才让我足够信任他们。
然后我在本科学校杭电的校内群里联系了两个华为od的校友他们都是入职一年就获得了转正资格。我觉得他们是利益相关者所以他们的话只能信一半。
我的核心想法是我来华为就是来提升进步的既然有转正机会那么我就应该进去试试。如果我没法转正那么我应该华为校招的正式岗位也过不了。
如果放弃这个offer去别的公司如海康。几年之后我大概率还是要跳槽来华为那么既然华为的低端社招od那么我跳槽华为也只能当od。
下面分享一道2023 B卷 朋友抽中题 简易内存池
二、题目描述
请实现一个简易内存池,根据请求命令完成内存分配和释放。
内存池支持两种操作命令REQUEST和RELEASE其格式为
1、REQUEST
请求的内存大小表示请求分配指定大小内存如果分配成功返回分配到的内存首地址如果内存不足或指定的大小为0则输出error。
2、RELEASE
释放的内存首地址 表示释放掉之前分配的内存释放成功无需输出如果释放不存在的首地址则输出error。
注意
1.内存池总大小为100字节。 2.内存池地址分配必须是连续内存并优先从低地址分配。 3.内存释放后可被再次分配已释放的内存在空闲时不能被二次释放。 4.不会释放已申请的内存块的中间地址。 5.释放操作只是针对首地址所对应的单个内存块进行操作不会影响其它内存块。
三、输入描述
首行为整数N表示操作命令的个数。
接下来的N行每行将给出一个操作命令操作命令和参数之间用“”分割
四、输出描述
输出最后请求的内存的首地址。
如果位置已满则输出-1。
样例
2 REQUEST10 REQUEST20
输出样例
0 10
五、解题思路
定义一个map存储内存的分配情况key内存的首地址value内存的尾地址请求内存时 如果map是空放在首地址0处如果map不为空遍历已经存入的首地址 已经存入的首地址 - 第一个空闲区域的首地址 大于 请求的内存值将当前请求的内存的首地址和内存的尾地址存入map反之重置前一个空闲区域的首地址 判断剩余内存是否可以容下当前请求值 如果可以容下将当前请求的内存的首地址和内存的尾地址存入map如果容不下输出error 释放内存时将其首地址的key移除map最后输出最后一次请求的首地址。
注意如果最后发起的命令是RELEASE也是可以的会返回最后一次REQUEST的首地址。
六、Java算法源码
package com.guor.od;import java.util.*;public class OdTest03 {static final String REQUEST REQUEST;static final String RELEASE RELEASE;static final String ERROR error;static final int MAX 100;public static void main(String[] args) {try {Scanner sc new Scanner(System.in);// 操作命令的个数int N Integer.parseInt(sc.nextLine());// 每一行的操作命令和参数String[][] lineArr new String[N][2];// 接下来的N行每行将给出一个操作命令操作命令和参数之间用“”分割for (int i 0; i N; i) {lineArr[i] sc.nextLine().split();}for (int i 0; i N; i) {// 内存大小int value Integer.parseInt(lineArr[i][1]);if (lineArr[i][0].startsWith(REQUEST)) {// 请求// 非法输入内存池总大小为100字节if (value MAX || value 0) {System.out.println(ERROR);return;}request(value);} else if (lineArr[i][0].startsWith(RELEASE)) {// 释放map.remove(value);} else {// 非法输入System.out.println(ERROR);}}} catch (Exception e) {// 非法输入System.out.println(ERROR);}}/*** 存储内存的分配情况* key内存的首地址* value内存的尾地址*/static MapInteger, Integer map new TreeMap();/*** 请求内存* value大小*/public static void request(int value) {int zero 0;// 前一个空闲区域的首地址int beforeHeadAddress 0;// 如果map是空放在首地址0处if (map.isEmpty()) {map.put(zero, value);} else {// 已经存入的首地址ListInteger headList new ArrayList(map.keySet());// 已经存入的首地址for (Integer requestedHead : headList) {// 已经存入的首地址 - 第一个空闲区域的首地址 大于 请求的内存值if (requestedHead - beforeHeadAddress value) {/*** beforeHeadAddress内存的首地址* beforeHeadAddress value内存的尾地址*/map.put(beforeHeadAddress, beforeHeadAddress value);} else {// 前一个空闲区域的首地址beforeHeadAddress map.get(requestedHead);}}// 判断剩余内存是否可以容下当前请求值if (MAX - beforeHeadAddress value) {map.put(beforeHeadAddress, beforeHeadAddress value);} else {// 如果位置已满则输出-1。System.out.println(-1);}}System.out.println(beforeHeadAddress);}
}七、效果展示
1、输入
4 REQUEST20 REQUEST30 RELEASE0 REQUEST30
2、输出
50
3、说明
第一次请求20第二请求30第三次释放首地址为0的内存第四次请求30第一个空闲区域的首地址是0但空闲长度只有20放不下当前请求的地址因此消耗剩余内存输出最后一次请求的首地址为50。 4、再输入
6 REQUEST20 REQUEST30 RELEASE0 REQUEST30 REQUEST10 REQUEST10
5、再说明
第一次请求20第二请求30第三次释放首地址为0的内存第四次请求30第一个空闲区域的首地址是0但空闲长度只有20放不下当前请求的地址因此消耗剩余内存。第五次请求10第一个空闲区域的首地址是0长度20可以容下当前请求的内存10。第六次请求10第一个空闲区域的首地址是10长度10可以容下当前请求的内存10。输出最后一次请求的首地址为10。 6、如果走后一次请求的是20会怎么样呢 八、漫画算法2小灰的算法进阶
本书是《漫画算法小灰的算法之旅》的续作通过主人公小灰的心路历程用漫画的形式讲述了多个数据结构、算法及复杂多变的算法面试题目。
第1章介绍了几种典型的排序算法包括选择排序、插入排序、希尔排序、归并排序、基数排序。第2章介绍了“树”结构的高级应用包括二叉查找树、AVL树、红黑树、B树和B树。第3章介绍了“图”结构的概念以及深度优先遍历、广度优先遍历、单源最短路径、多源最短路径算法。第4章介绍了“查找”相关的算法和数据结构包括二分查找算法、RK算法、KMP算法以及“跳表”这种用于高效查找的数据结构。第5章介绍了多种职场上流行的算法面试题目及详细的解题思路例如螺旋遍历二维数组、寻找数组中第k大元素、求股票交易的更大收益等。
参与方式
图书数量本次送出 4 本 ⭐️⭐️⭐️⭐️ 活动时间截止到 2023-08-15 12:00:00
抽奖方式
根据文章内容进行高质量评论留言中随机抽取4位小伙伴
哪吒会在本文留言区置顶公布中奖名单 名单公布时间2023-08-15 13点
第1期中奖名单公布 啥咕啦呛 空圆小生 狮子也疯狂 千子。