自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機器人都會走迷宮了,我們?nèi)绾卧诓脝T浪潮中升職加薪!

人工智能 算法 后端
我們只有不斷地學(xué)習新知識和技能,以保持高水平的編程能力。這不僅能夠提升我們的工作效率,還能夠在職場競爭中脫穎而出,讓我們一起在裁員的浪潮中升職加薪。

大家好,我是哪吒。

臨下班的時候,同事電話里吐槽道

今年的年終獎比去年多了一點

嗯,是不錯,去年1000,今年2000

今年已經(jīng)是連續(xù)第四年沒開年會了,疫情三年,今年默認疫情了!

那要不要換個工作啥的?

她笑了笑,回了句,抱歉,今年沒有金三銀四了!

現(xiàn)在的行情就是哀鴻遍野。

裁員不可怕,可怕的是不給任何賠償,還要讓你憋屈的主動離職,比如強制加班、強制調(diào)崗、強制出差。

能領(lǐng)取大禮包畢業(yè)的,已經(jīng)算是人上人了。

有些裁員也是以訛傳訛,無中生有。

不管怎么裁,我們還是要工作的,千萬不要沖動,轉(zhuǎn)行去干四大金剛(快遞、外賣、滴滴、自媒體)。你的身體扛不住的,而且它們也沒有你想象中的那么香。

面對裁員問題,我們要如何自救?

如果是被裁者:

  • 與領(lǐng)導(dǎo)和HR心平氣和的談?wù)?,如何才能獲取到更好的失業(yè)補償,切記沖動,破罐子破摔,憤然裸辭!
  • 充分利用交接時間,與家人、朋友結(jié)伴出游,調(diào)整自己的心態(tài),克服被拋棄的消極情緒。
  • 充分利用企業(yè)規(guī)模裁員的機會,跳槽到你心儀的公司,也許這是一次升職加薪的好機遇。

如果是幸存者:

裁員一波接一波,一個季度一份名單,此次沒你,下次就不一定了!

  • 做好本職工作,爭取多在領(lǐng)導(dǎo)面前表現(xiàn),聽哥一句話,會干的不如會說的。
  • 裁員過后,工作任務(wù)勢必會增加,調(diào)整心態(tài),避免消極情緒。
  • 多學(xué)習,技多不壓身,不管大環(huán)境多糟糕,有能力的人總會有用武之地。
  • 做好職業(yè)規(guī)劃,不管裁與不裁,切忌躺平,學(xué)如逆水行舟,不進則退,現(xiàn)在的小年輕兒,猛的很,什么云原生、中間件、JVM、性能優(yōu)化,信手拈來。
  • 要想進大廠,算法很重要。

我們只有不斷地學(xué)習新知識和技能,以保持高水平的編程能力。這不僅能夠提升我們的工作效率,還能夠在職場競爭中脫穎而出,讓我們一起在裁員的浪潮中升職加薪。

機器人走迷宮

一、題目描述

  • 房間由XY的方格組成,例如下圖為24的大小。每一個方格以坐標(x,y)描述。
  • 機器人固定從方格(0,0)出發(fā),只能向東或者向北前進。出口固定為房間的最東北角,如下圖的方格(5,3)。用例保證機器人可以從入口走到出口。
  • 房間有些方格是墻壁,如(4,1),機器人不能經(jīng)過那兒。
  • 有些地方是一旦到達就無法走到出口的,如標記為B的方格,稱之為陷阱方格。
  • 有些地方是機器人無法到達的的,如標記為A的方格,稱之為不可達方格,不可達方格不包括墻壁所在的位置。
  • 如下示例圖中,陷阱方格有2個,不可達方格有3個;
  • 請為該機器人實現(xiàn)路徑規(guī)劃功能: 給定房間大小、墻壁位置,請計算出陷阱方格與不可達方格分別有多少個。

二、輸入描述

  • 第一行為房間的X和Y (0 < X,Y = 1000)
  • 第二行為房間中墻壁的個數(shù)N (0 = N< X*Y)

同一行中如果有多個數(shù)據(jù)以一個空格隔開,用例保證所有的輸入數(shù)據(jù)均合法。(結(jié)尾不帶回車換行)。

三、輸出描述

陷阱方格與不可達方格數(shù)量,兩個信息在一行中輸出,以一個空格隔開。(結(jié)尾不帶回車換行)。

四、解題思路

1.第一行輸入行數(shù)m、列數(shù)n。

2.第二行輸入墻數(shù)wallNum。

3.下面的wallNum行,輸入墻的坐標。

4.定義二維矩陣matrix,并進行初始化,默認0,墻為-1。

  • 0:不可達,因為默認是0,向x和y正方向一步一步走的話,如果未涉及,就是不可達,所以是0。
  • -1:墻。
  • 1:可達。
  • -2:陷阱。

5.通過深度優(yōu)先搜索dfs,遍歷matrix。

  • 如果x或y正向都可達,則將其設(shè)為可達1。
  • 如果x或y正向都不可達,則將其設(shè)為陷阱-2。

6.遍歷matrix。

  • 如果此時為0,表示不可達。
  • 如果此時為-2,表示陷阱。

7.按照指定格式輸出陷阱和不可達的數(shù)量。

五、深度優(yōu)先搜索dfs

在我們遇到的一些問題當中,有些問題我們不能夠確切的找出數(shù)學(xué)模型,即找不出一種直接求解的方法,解決這一類問題,我們一般采用搜索的方法解決。搜索就是用問題的所有可能去試探,按照一定的順序、規(guī)則,不斷去試探,直到找到問題的解,試完了也沒有找到解,那就是無解,試探時一定要試探完所有的情況(實際上就是窮舉);

對于問題的第一個狀態(tài),叫初始狀態(tài),要求的狀態(tài)叫目標狀態(tài)。搜索就是把規(guī)則應(yīng)用于實始狀態(tài),在其產(chǎn)生的狀態(tài)中,直到得到一個目標狀態(tài)為止。產(chǎn)生新的狀態(tài)的過程叫擴展(由一個狀態(tài),應(yīng)用規(guī)則,產(chǎn)生新狀態(tài)的過程)。

搜索的要點:

  • 初始狀態(tài)。
  • 重復(fù)產(chǎn)生新狀態(tài)。
  • 檢查新狀態(tài)是否為目標,是結(jié)束,否轉(zhuǎn)(2)。

如果搜索是以接近起始狀態(tài)的程序依次擴展狀態(tài)的,叫寬度優(yōu)先搜索。

如果擴展是首先擴展新產(chǎn)生的狀態(tài),則叫深度優(yōu)先搜索。

深度優(yōu)先搜索用一個數(shù)組存放產(chǎn)生的所有狀態(tài)。

  • 把初始狀態(tài)放入數(shù)組中,設(shè)為當前狀態(tài)。
  • 擴展當前的狀態(tài),產(chǎn)生一個新的狀態(tài)放入數(shù)組中,同時把新產(chǎn)生的狀態(tài)設(shè)為當前狀態(tài)。
  • 判斷當前狀態(tài)是否和前面的重復(fù),如果重復(fù)則回到上一個狀態(tài),產(chǎn)生它的另一狀態(tài)。
  • 判斷當前狀態(tài)是否為目標狀態(tài),如果是目標,則找到一個解答,結(jié)束算法。
  • 如果數(shù)組為空,說明無解。

六、Java算法源碼

private static int m;// 行數(shù)
private static int n;// 列數(shù)
private static int wallNum;// 墻數(shù)
private static int[][] matrix;// 二維矩陣

/**
 * 0:不可達,因為默認是0,向x和y正方向一步一步走的話,如果未涉及,就是不可達,所以是0
 * -1:墻
 * 1:可達
 * -2:陷阱
 */
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int[] input = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
    m = input[0];
    n = input[1];
    wallNum = Integer.valueOf(sc.nextLine());

    matrix = new int[m][n];
    matrix[m - 1][n - 1] = 1; // 可達1
    for (int i = 0; i < wallNum; i++) {
        int[] arr = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        matrix[arr[0]][arr[1]] = -1; // 墻-1,默認為0
    }

    dfs(0, 0);

    int trapNum = 0; // 陷阱
    int inaccessibleNum = 0; // 不可達

    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (matrix[i][j] == 0) {// 不可達
                inaccessibleNum++;
            }else if (matrix[i][j] == -2) {// 陷阱
                trapNum++;
            }
        }
    }

    System.out.println(trapNum + " " + inaccessibleNum);
}

public static boolean dfs(int x, int y) {
    if (x >= m || y >= n) {// 非法輸入
        return false;
    }
    if (matrix[x][y] == -1) {// 墻
        return false;
    }
    if (matrix[x][y] == -2) {// 不可達
        return false;
    }
    if (matrix[x][y] == 1) {// 可達
        return true;
    }

    if (matrix[x][y] == 0) {
        boolean step_x = dfs(x + 1, y);
        boolean step_y = dfs(x, y + 1);

        // 如果x或y正向都可達,則將其設(shè)為可達1
        if (step_x || step_y) {
            matrix[x][y] = 1;
        } else {// 如果x或y正向都不可達,則將其設(shè)為陷阱-2
            matrix[x][y] = -2;
        }
    }
    return matrix[x][y] == 1;
}

七、效果展示

1.輸入

6 4 5 0 2 1 2 2 2 4 1 5 1

2.輸出

2 3

3.說明


責任編輯:姜華 來源: 哪吒編程
相關(guān)推薦

2021-08-05 13:59:50

機器人人工智能技術(shù)

2020-08-24 09:08:17

機器人自主研發(fā)技術(shù)

2017-05-08 12:05:51

機器人智慧養(yǎng)老人工智能

2023-10-13 09:00:00

2021-07-22 10:17:55

加密機器人加密貨幣機器人

2024-10-18 16:50:00

機器人特斯拉

2021-10-27 10:41:06

機器人人工智能AI

2021-03-03 13:55:42

人工智能機器人失業(yè)

2021-03-26 16:00:20

機器人AI人工智能

2020-10-15 15:42:00

人工智能

2020-11-07 17:55:29

AI

2023-05-24 13:04:46

機器人人工智能

2022-10-17 15:35:32

人形機器人機器人

2022-07-28 11:26:41

人工智能機器人

2017-04-21 07:15:57

機器人

2023-08-06 12:50:19

機器人AI

2022-10-09 11:46:55

機器人人工智能

2016-02-16 10:30:32

機器人

2020-12-31 06:55:37

機器人自然語言人工智能

2021-07-19 10:04:32

機器人AI人工智能
點贊
收藏

51CTO技術(shù)棧公眾號