大家好,我是哪吒。
最近一直在刷華為OD機試的算法題,堅持一天三道題的節(jié)奏,已經(jīng)三個多月了,刷了270多道題,剛開始也有過想放棄的想法,刷一道卡一道,一道題要用1小時,因為太菜了嗎?哎,一言難盡
隨著時間的推移,感覺自己慢慢上道了,一道題用不上1個小時了,哈哈,這就是進步嘛
一、考研二戰(zhàn),入職華為,反向調(diào)劑電子科大深圳
不經(jīng)意間在網(wǎng)上看到一個帖子《考研二戰(zhàn),入職華為,反向調(diào)劑電子科大深圳》,寫的真不錯,分享給大家。
加入華為OD后,給我的感覺比想象中,或者說比網(wǎng)上大部分的說法都要好。
我覺得在這里能學到很多東西,畢竟是大公司,平臺也大,能接觸到的牛人也多。
我覺得一個初來乍到的應屆本科生受到歧視也正常,周圍都是名校碩博,作為一個新人我沒有任何理由驕傲。技不如人甘拜下風,虛心一點好好學習也是好的。
另外,我覺得無論是校招進華為正式,還是社招進華為od,我感覺沒有想象中區(qū)別那么明顯。
技術(shù)崗還是靠實力說話。我們的od員工和正式員工辦公上沒有一點差別,甚至我們組的美本的正式員工第一個月都不知道我們之間有什么區(qū)別。
我的本科同班同學校招進華為的也搞不懂我工號和他們正式員工工號的區(qū)別。
我的od同事有7年的ios開發(fā)經(jīng)驗,是從隔壁某個體面的硬件大廠跳槽過來的,因為工作經(jīng)驗豐富,反而成為了我和一個正式員工(應屆)的老師。
我相信以他的實力,一年期滿很快就能完成轉(zhuǎn)正。即便轉(zhuǎn)正名額給他而不給我,我也服氣的。
我覺得在華為有一個巨大的優(yōu)勢,就是信息上的優(yōu)勢。
畢竟是在華為,了解到的資訊都是第一手的,很多消息非常通暢。
比方說我之前在學校完全不能理解大公司是怎么招人的,而在這里通過別人的只言片語,能對這個流程有個初步的理解感受。
包括下文中我提到了解非全碩士的過程,華為這個平臺也給我提供了第一手的信息。
對于我的朋友,行業(yè)外的肯定不會認可我的本科,但是我直接籠統(tǒng)地說我在華為工作,外行便會肅然起敬。
而行業(yè)內(nèi)的人我稍微解釋一下他們也能理解,行業(yè)內(nèi)還是看你的技術(shù)的,我還是非常肯定我自己的專業(yè)實力的。
并且行業(yè)內(nèi)也知道我的本科杭州電子科技大學是華為目標院校,可以直接華為校招成為正式員工的。
比方說我這個工作除了簽協(xié)議是和德科公司簽的以外,別的部分都挺完美的了:是軟件開發(fā)的技術(shù)崗、華為核心部分、利于項目經(jīng)驗積累、待遇不錯。
畢竟我就是正兒八經(jīng)的華為的社招,錯過了校招的正式招聘時間才只能和德科簽合同的。
反正對于我來說,每個人要找到適合自己的,找到自己的需求。需要什么,就去拿什么。入職的這一個月見識到了很多東西,收獲頗豐,進步巨大。每天都在不停地自我更新中,感覺很好。
關(guān)于華為od,網(wǎng)上詬病最多的就是轉(zhuǎn)正華為正式員工部分了。甚至我曾經(jīng)做過hr的表姐都告誡我,“千萬別去華為od,因為od永遠不可以轉(zhuǎn)正?!?/p>
我多方打聽,包括反復跟招我的人確定轉(zhuǎn)正情況。對方答復說我們部門有30%的轉(zhuǎn)正率。我也通過其他不可能跟招我的人有聯(lián)系的人確認了下,確認這個部門的轉(zhuǎn)正率確實是30%。這才讓我足夠信任他們。
然后我在本科學校杭電的校內(nèi)群里聯(lián)系了兩個華為od的校友,他們都是入職一年就獲得了轉(zhuǎn)正資格。我覺得他們是利益相關(guān)者,所以他們的話只能信一半。
我的核心想法是,我來華為就是來提升進步的,既然有轉(zhuǎn)正機會,那么我就應該進去試試。如果我沒法轉(zhuǎn)正,那么我應該華為校招的正式崗位也過不了。
如果放棄這個offer去別的公司,如???。幾年之后我大概率還是要跳槽來華為,那么既然華為的低端社招=od,那么我跳槽華為也只能當od。
下面分享一道2023 B卷 朋友抽中題 簡易內(nèi)存池:
二、題目描述
請實現(xiàn)一個簡易內(nèi)存池,根據(jù)請求命令完成內(nèi)存分配和釋放。
內(nèi)存池支持兩種操作命令,REQUEST和RELEASE,其格式為:
1、REQUEST
請求的內(nèi)存大小表示請求分配指定大小內(nèi)存,如果分配成功,返回分配到的內(nèi)存首地址;如果內(nèi)存不足,或指定的大小為0,則輸出error。
2、RELEASE
釋放的內(nèi)存首地址 表示釋放掉之前分配的內(nèi)存,釋放成功無需輸出,如果釋放不存在的首地址則輸出error。
注意:
1.內(nèi)存池總大小為100字節(jié)。
2.內(nèi)存池地址分配必須是連續(xù)內(nèi)存,并優(yōu)先從低地址分配。
3.內(nèi)存釋放后可被再次分配,已釋放的內(nèi)存在空閑時不能被二次釋放。
4.不會釋放已申請的內(nèi)存塊的中間地址。
5.釋放操作只是針對首地址所對應的單個內(nèi)存塊進行操作,不會影響其它內(nèi)存塊。
三、輸入描述
首行為整數(shù)N,表示操作命令的個數(shù)。
接下來的N行,每行將給出一個操作命令,操作命令和參數(shù)之間用“=”分割
四、輸出描述
輸出最后請求的內(nèi)存的首地址。
如果位置已滿,則輸出-1。
樣例:
2
REQUEST=10
REQUEST=20
輸出樣例:
0
10
五、解題思路
- 定義一個map,存儲內(nèi)存的分配情況(key:內(nèi)存的首地址,value:內(nèi)存的尾地址);
- 請求內(nèi)存時
- 如果map是空,放在首地址0處;
- 如果map不為空,遍歷已經(jīng)存入的首地址;
- 已經(jīng)存入的首地址 - 第一個空閑區(qū)域的首地址 大于 請求的內(nèi)存值;
- 將當前請求的內(nèi)存的首地址和內(nèi)存的尾地址存入map;
- 反之,重置前一個空閑區(qū)域的首地址;
- 判斷剩余內(nèi)存是否可以容下當前請求值;
- 如果可以容下,將當前請求的內(nèi)存的首地址和內(nèi)存的尾地址存入map;
- 如果容不下,輸出error;
- 釋放內(nèi)存時,將其首地址的key移除map;
- 最后輸出最后一次請求的首地址。
注意:如果最后發(fā)起的命令是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);
// 操作命令的個數(shù)
int N = Integer.parseInt(sc.nextLine());
// 每一行的操作命令和參數(shù)
String[][] lineArr = new String[N][2];
// 接下來的N行,每行將給出一個操作命令,操作命令和參數(shù)之間用“=”分割
for (int i = 0; i < N; i++) {
lineArr[i] = sc.nextLine().split("=");
}
for (int i = 0; i < N; i++) {
// 內(nèi)存大小
int value = Integer.parseInt(lineArr[i][1]);
if (lineArr[i][0].startsWith(REQUEST)) {// 請求
// 非法輸入(內(nèi)存池總大小為100字節(jié))
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);
}
}
/**
* 存儲內(nèi)存的分配情況
* key:內(nèi)存的首地址
* value:內(nèi)存的尾地址
*/
static Map<Integer, Integer> map = new TreeMap<>();
/**
* 請求內(nèi)存
* @value:大小
*/
public static void request(int value) {
int zero = 0;
// 前一個空閑區(qū)域的首地址
int beforeHeadAddress = 0;
// 如果map是空,放在首地址0處
if (map.isEmpty()) {
map.put(zero, value);
} else {
// 已經(jīng)存入的首地址
List<Integer> headList = new ArrayList<>(map.keySet());
// 已經(jīng)存入的首地址
for (Integer requestedHead : headList) {
// 已經(jīng)存入的首地址 - 第一個空閑區(qū)域的首地址 大于 請求的內(nèi)存值
if (requestedHead - beforeHeadAddress >= value) {
/**
* beforeHeadAddress:內(nèi)存的首地址
* beforeHeadAddress + value:內(nèi)存的尾地址
*/
map.put(beforeHeadAddress, beforeHeadAddress + value);
} else {
// 前一個空閑區(qū)域的首地址
beforeHeadAddress = map.get(requestedHead);
}
}
// 判斷剩余內(nèi)存是否可以容下當前請求值
if (MAX - beforeHeadAddress >= value) {
map.put(beforeHeadAddress, beforeHeadAddress + value);
} else {
// 如果位置已滿,則輸出-1。
System.out.println("-1");
}
}
System.out.println(beforeHeadAddress);
}
}
七、效果展示
1、輸入
4
REQUEST=20
REQUEST=30
RELEASE=0
REQUEST=30
2、輸出
50
3、說明
- 第一次請求20
- 第二請求30
- 第三次釋放首地址為0的內(nèi)存
- 第四次請求30,第一個空閑區(qū)域的首地址是0,但空閑長度只有20,放不下當前請求的地址,因此消耗剩余內(nèi)存,輸出最后一次請求的首地址為50。
4、再輸入
6
REQUEST=20
REQUEST=30
RELEASE=0
REQUEST=30
REQUEST=10
REQUEST=10
5、再說明
- 第一次請求20
- 第二請求30
- 第三次釋放首地址為0的內(nèi)存
- 第四次請求30,第一個空閑區(qū)域的首地址是0,但空閑長度只有20,放不下當前請求的地址,因此消耗剩余內(nèi)存。
- 第五次請求10,第一個空閑區(qū)域的首地址是0,長度20,可以容下當前請求的內(nèi)存10。
- 第六次請求10,第一個空閑區(qū)域的首地址是10,長度10,可以容下當前請求的內(nèi)存10。
- 輸出最后一次請求的首地址為10。
6、如果走后一次請求的是20,會怎么樣呢?
八、漫畫算法2:小灰的算法進階
本書是《漫畫算法:小灰的算法之旅》的續(xù)作,通過主人公小灰的心路歷程,用漫畫的形式講述了多個數(shù)據(jù)結(jié)構(gòu)、算法及復雜多變的算法面試題目。
- 第1章介紹了幾種典型的排序算法,包括選擇排序、插入排序、希爾排序、歸并排序、基數(shù)排序。
- 第2章介紹了“樹”結(jié)構(gòu)的高級應用,包括二叉查找樹、AVL樹、紅黑樹、B樹和B+樹。
- 第3章介紹了“圖”結(jié)構(gòu)的概念,以及深度優(yōu)先遍歷、廣度優(yōu)先遍歷、單源最短路徑、多源最短路徑算法。
- 第4章介紹了“查找”相關(guān)的算法和數(shù)據(jù)結(jié)構(gòu),包括二分查找算法、RK算法、KMP算法,以及“跳表”這種用于高效查找的數(shù)據(jù)結(jié)構(gòu)。
- 第5章介紹了多種職場上流行的算法面試題目及詳細的解題思路,例如螺旋遍歷二維數(shù)組、尋找數(shù)組中第k大元素、求股票交易的更大收益等。
參與方式
圖書數(shù)量:本次送出 4 本 ?。。????????
活動時間:截止到 2023-08-15 12:00:00
??抽獎方式:
- 根據(jù)文章內(nèi)容進行高質(zhì)量評論
- 留言中隨機抽取4位小伙伴
??哪吒會在本文留言區(qū)置頂公布中獎名單
名單公布時間:2023-08-15 13點文章來源:http://www.zghlxwxcb.cn/news/detail-649530.html
??第1期中獎名單公布:
啥咕啦嗆
空圓小生
獅子也瘋狂
千子。文章來源地址http://www.zghlxwxcb.cn/news/detail-649530.html
到了這里,關(guān)于刷了3個月的華為OD算法題,刷出感覺了,如潔柔般絲滑,文末送《漫畫算法2:小灰的算法進階》的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!