国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【每日一題Day218】LC1091 二進制矩陣中的最短路徑 | BFS

這篇具有很好參考價值的文章主要介紹了【每日一題Day218】LC1091 二進制矩陣中的最短路徑 | BFS。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

二進制矩陣中的最短路徑【LC1091】

你駕駛出租車行駛在一條有 n 個地點的路上。這 n 個地點從近到遠編號為 1n ,你想要從 1 開到 n ,通過接乘客訂單盈利。你只能沿著編號遞增的方向前進,不能改變方向。

乘客信息用一個下標從 0 開始的二維數(shù)組 rides 表示,其中 rides[i] = [starti, endi, tipi] 表示第 i 位乘客需要從地點 starti 前往 endi ,愿意支付 tipi 元的小費。

每一位 你選擇接單的乘客 i ,你可以 盈利 endi - starti + tipi 元。你同時 最多 只能接一個訂單。

給你 nrides ,請你返回在最優(yōu)接單方案下,你能盈利 最多 多少元。

**注意:**你可以在一個地點放下一位乘客,并在同一個地點接上另一位乘客。

  • 思路

    常規(guī)BFS,使用隊列進行BFS,搜索時記錄搜索的輪數(shù)。搜索到一個可以訪問的節(jié)點時,將其入隊。如果搜索到終點時,直接返回當前輪數(shù);如果隊列為空仍為訪問到終點,那么返回-1;

    • 訪問過一個節(jié)點后,為了避免重復訪問直接將給節(jié)點設置為-1
  • 實現(xiàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-479448.html

    class Solution {
        public int shortestPathBinaryMatrix(int[][] grid) {
            // BFS
           int[][] dirs = {{0, 1}, {1, 0}, {1, 1}, {0, -1}, {-1, 0}, {-1, -1}, {1, -1}, {-1, 1}};// 8個方向?
           Deque<int[]> queue = new LinkedList<>();
           int n = grid.length;
           int count = 0;
           if (grid[0][0] == 0){
               queue.add(new int[]{0, 0});
           }
           while(!queue.isEmpty()){
               int size = queue.size();
               count++;
               for (int i = 0; i < size; i++){
                    int[] p = queue.poll();
                    int x = p[0], y = p[1];
                    if (x == n - 1 && y == n - 1) return count;
                    for (int[] dir : dirs){
                        int x1 = x + dir[0], y1 = y + dir[1];           
                        if (x1 >= 0 && y1 >= 0 && x1 <n && y1 < n && grid[x1][y1] != 1){                 
                            queue.add(new int[]{x1, y1});
                            grid[x1][y1] = 1;
                        }
                    }
               }
               
           }
           return -1;
    
        }
    }
    
    • 復雜度
      • 時間復雜度: O ( n 2 ) \mathcal{O}(n^2) O(n2)
      • 空間復雜度: O ( n 2 ) \mathcal{O}(n^2) O(n2)

到了這里,關于【每日一題Day218】LC1091 二進制矩陣中的最短路徑 | BFS的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【LeetCode】每日一題 - 負二進制轉(zhuǎn)化

    負二進制轉(zhuǎn)換 給你一個整數(shù)? n ?,以二進制字符串的形式返回該整數(shù)的? 負二進制( base -2 ) 表示。 注意, 除非字符串就是? \\\"0\\\" ,否則返回的字符串中不能含有前導零。 示例 1: 示例 2: 示例 3: 提示: 0 = n = 109 思路:將一個十進制的數(shù) n 轉(zhuǎn)化為任意 x 進制都可以使用

    2024年04月29日
    瀏覽(88)
  • ( 位運算 ) 190. 顛倒二進制位 ——【Leetcode每日一題】

    ( 位運算 ) 190. 顛倒二進制位 ——【Leetcode每日一題】

    難度:簡單 顛倒給定的 32 位無符號整數(shù)的二進制位。 提示: 請注意,在某些語言(如 Java )中,沒有無符號整數(shù)類型。在這種情況下,輸入和輸出都將被指定為有符號整數(shù)類型,并且不應影響您的實現(xiàn),因為無論整數(shù)是有符號的還是無符號的,其內(nèi)部的二進制表示形式都是

    2024年02月03日
    瀏覽(92)
  • 【LeetCode - 每日一題】1073. 負二進制數(shù)相加 (2023.05.18)

    基數(shù)為 -2 。 實現(xiàn)兩個 0/1 數(shù)組串的加法。 這是一道模擬題。 設 arr1[i] 和 arr2[i] 是數(shù)組 arr1 和 arr2 從低到高的第 i 位數(shù)。 首先回顧普通的二進制數(shù)的相加,從低位開始計算,在計算的同時維護用一個變量 carry 維護進位信息,因此,對于第 i 位的結(jié)果 ans[i] = arr1[i] + arr2[i] + c

    2024年02月05日
    瀏覽(18)
  • C語言每日一題之整數(shù)求二進制1的個數(shù)

    C語言每日一題之整數(shù)求二進制1的個數(shù)

    今天分享一道題目,用三種方法來求解 二進制1的個數(shù) 方法1 我們的十進制除10和取余數(shù)就可以得到我們每一位的數(shù)字,那我們的二進制也可 以 這是一種方法,另外一種就是我們可以用移位操作符來算 這個方法是不是也是特別妙呢,當然還有更妙的方法,請看!??! 相信看

    2024年02月15日
    瀏覽(90)
  • (位運算) 1356. 根據(jù)數(shù)字二進制下 1 的數(shù)目排序 ——【Leetcode每日一題】

    (位運算) 1356. 根據(jù)數(shù)字二進制下 1 的數(shù)目排序 ——【Leetcode每日一題】

    難度:簡單 給你一個整數(shù)數(shù)組 arr 。請你將數(shù)組中的元素按照其二進制表示中數(shù)字 1 的數(shù)目升序排序。 如果存在多個數(shù)字二進制中 1 的數(shù)目相同,則必須將它們按照數(shù)值大小升序排列。 請你返回排序后的數(shù)組。 示例 1: 輸入 :arr = [0,1,2,3,4,5,6,7,8] 輸出 :[0,1,2,4,8,3,5,6,7] 解釋

    2024年02月12日
    瀏覽(89)
  • 2023-06-14 LeetCode每日一題(二進制字符串前綴一致的次數(shù))

    點擊跳轉(zhuǎn)到題目位置 給你一個長度為 n 、下標從 1 開始的二進制字符串,所有位最開始都是 0 。我們會按步翻轉(zhuǎn)該二進制字符串的所有位(即,將 0 變?yōu)?1)。 給你一個下標從 1 開始的整數(shù)數(shù)組 flips ,其中 flips[i] 表示對應下標 i 的位將會在第 i 步翻轉(zhuǎn)。 二進制字符串 前綴

    2024年02月08日
    瀏覽(98)
  • C語言每日一題(5):求兩個數(shù)二進制中不同位的個數(shù)

    C語言每日一題(5):求兩個數(shù)二進制中不同位的個數(shù)

    文章主題:求兩個數(shù)二進制中不同位的個數(shù)?? 所屬專欄: C語言每日一題 ?? 作者簡介:每天不定時更新C語言的小白一枚,記錄分享自己每天的所思所想???? 個人主頁: [?]的個人主頁 ???? 最近剛學位操作符以及二進制碼的相關知識,于是想出了求兩個數(shù)二進制中不同

    2024年02月07日
    瀏覽(848)
  • 【每日一題Day292】LC1572矩陣對角線元素的和 模擬

    思路 簡單模擬,主對角線的元素橫縱坐標相等,副對角線的元素橫縱坐標相加為n-1,注意避免重復計算 實現(xiàn) 復雜度 時間復雜度: O ( log ? n ) mathcal{O}(log n) O ( lo g n ) 空間復雜度: O ( 1 ) mathcal{O}(1) O ( 1 )

    2024年02月13日
    瀏覽(20)
  • 【每日一題Day220】LC1439有序矩陣中的第 k 個最小數(shù)組和 | 堆

    再來做一下373,之前都沒有試過用小頂堆求第K小的,有序這個條件對我而言是擺設了 查找和最小的 K 對數(shù)字【LC373】 給定兩個以 升序排列 的整數(shù)數(shù)組 nums1 和 nums2 , 以及一個整數(shù) k 。 定義一對值 (u,v) ,其中第一個元素來自 nums1 ,第二個元素來自 nums2 。 請找到和最小的 k

    2024年02月10日
    瀏覽(19)
  • DAY001_二進制運算

    無符號左移? Java沒有無符號左移 無符號右移 左邊補0 有符號右移 左邊用原符號位補位 即正數(shù)補0效果同無符號右移、負數(shù)補1 有符號左移 右邊補0 輸出如下: 此外,根據(jù)上面的代碼,我們還可以經(jīng)過測試得出 int 類型位移32位、64位還是它本身 long 類型位移64位還是它本身 看

    2024年02月13日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包