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

2023-08-22 LeetCode每日一題(到最近的人的最大距離)

這篇具有很好參考價值的文章主要介紹了2023-08-22 LeetCode每日一題(到最近的人的最大距離)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

2023-08-22每日一題

一、題目編號

849. 到最近的人的最大距離

二、題目鏈接

點擊跳轉(zhuǎn)到題目位置

三、題目描述

給你一個數(shù)組 seats 表示一排座位,其中 seats[i] = 1 代表有人坐在第 i 個座位上,seats[i] = 0 代表座位 i 上是空的(下標從 0 開始)。

至少有一個空座位,且至少有一人已經(jīng)坐在座位上。

亞歷克斯希望坐在一個能夠使他與離他最近的人之間的距離達到最大化的座位上。

返回他到離他最近的人的最大距離。

示例 1:2023-08-22 LeetCode每日一題(到最近的人的最大距離),LeetCode每日一題,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)
示例2:
2023-08-22 LeetCode每日一題(到最近的人的最大距離),LeetCode每日一題,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)
示例3:
2023-08-22 LeetCode每日一題(到最近的人的最大距離),LeetCode每日一題,leetcode,算法,數(shù)據(jù)結(jié)構(gòu)
提示:

  • 2 <= seats.length <= 2 * 104
  • seats[i] 為 0 或 1
  • 至少有一個 空座位
  • 至少有一個 座位上有人

四、解題代碼

class Solution {
public:
    int maxDistToClosest(vector<int>& seats) {
        int dp1[20010];
        int dp2[20010];
        int max0 = 0;
        int n = seats.size();
        memset(dp1, 0, sizeof(dp1));
        memset(dp2, 0, sizeof(dp2));
        for(int i = 0; i < n; ++i){
            if(i == 0){
                if(seats[i]){
                    dp1[i] = 1;
                } else{
                    dp1[i] = 0;
                }
                continue;
            }
            if(seats[i]){
                dp1[i] = i + 1;
            } else{
                dp1[i] = dp1[i - 1];
            }
        }
        for(int i = n - 1; i >= 0; --i){
            if(seats[i]){
                dp2[i] = i + 1;
            } else{
                dp2[i] = dp2[i + 1];
            }
        }
        int len = 0;
        for(int i = 0; i < n; ++i){
            if(dp1[i] == i + 1 || dp2[i] == i + 1){
                continue;
            } else{
                int left = 0;
                int right = 0;
                if(dp1[i] == 0){
                    len = max(len, max(i + 1, dp2[i] - 1 - i));
                    continue;
                } else{
                    left = i + 1 - dp1[i];
                }
                if(dp2[i] == 0){
                    len = max(len, max(n - 1 - i, i + 1 - dp1[i]));
                    continue;
                } else{
                    right = dp2[i] - 1 - i;
                }
                len = max(len, min(left, right)); 
            }
        }
    return len;
    }
};

五、解題思路

(1) 可以用前后綴和來幫忙輔助判斷,當前位置前面的最近的人的位置,當前位置后面最近的人的位置,處于方便考慮位置0的可能,所以位置一律+1.

(2) 如果前面的位置沒人,所以左端的距離為i,如果后面的位置沒人,所以右端的位置為i+1。

(3) 如果左右都有人,則左右端計算即可,難度不高。文章來源地址http://www.zghlxwxcb.cn/news/detail-666807.html

到了這里,關(guān)于2023-08-22 LeetCode每日一題(到最近的人的最大距離)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 2023-08-01 LeetCode每日一題(英雄的力量)

    2023-08-01 LeetCode每日一題(英雄的力量)

    點擊跳轉(zhuǎn)到題目位置 給你一個下標從 0 開始的整數(shù)數(shù)組 nums ,它表示英雄的能力值。如果我們選出一部分英雄,這組英雄的 力量 定義為: i 0 ,i 1 ,… i k 表示這組英雄在數(shù)組中的下標。那么這組英雄的力量為 max(nums[i0],nums[i1] … nums[ik])2 * min(nums[i0],nums[i1] … nums[ik]) 。 請你

    2024年02月14日
    瀏覽(54)
  • 2023-07-08 LeetCode每日一題(三數(shù)之和)

    點擊跳轉(zhuǎn)到題目位置 給你一個整數(shù)數(shù)組 nums ,判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i != j、i != k 且 j != k ,同時還滿足 nums[i] + nums[j] + nums[k] == 0 。請 你返回所有和為 0 且不重復的三元組。 **注意:**答案中不可以包含重復的三元組。 提示: 3 = nums.length = 3000 -10 5

    2024年02月13日
    瀏覽(26)
  • 2023-08-13 LeetCode每日一題(合并兩個有序數(shù)組)

    2023-08-13 LeetCode每日一題(合并兩個有序數(shù)組)

    點擊跳轉(zhuǎn)到題目位置 給你兩個按 非遞減順序 排列的整數(shù)數(shù)組 nums1 和 nums2,另有兩個整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素數(shù)目。 請你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。 **注意:**最終,合并后數(shù)組不應由函數(shù)返回,而是存儲在數(shù)組 num

    2024年02月13日
    瀏覽(28)
  • 2023-09-08 LeetCode每日一題(計算列車到站時間)

    2023-09-08 LeetCode每日一題(計算列車到站時間)

    點擊跳轉(zhuǎn)到題目位置 給你一個正整數(shù) arrivalTime 表示列車正點到站的時間(單位:小時),另給你一個正整數(shù) delayedTime 表示列車延誤的小時數(shù)。 返回列車實際到站的時間。 注意,該問題中的時間采用 24 小時制。 示例 1: 示例 2: 提示: 1 = arrivaltime 24 1 = delayedTime = 24 (1) 運用

    2024年02月09日
    瀏覽(20)
  • 2023-08-04 LeetCode每日一題(不同路徑 III)

    2023-08-04 LeetCode每日一題(不同路徑 III)

    點擊跳轉(zhuǎn)到題目位置 在二維網(wǎng)格 grid 上,有 4 種類型的方格: 1 表示起始方格。且只有一個起始方格。 2 表示結(jié)束方格,且只有一個結(jié)束方格。 0 表示我們可以走過的空方格。 -1 表示我們無法跨越的障礙。 返回在四個方向(上、下、左、右)上行走時,從起始方格到結(jié)束方

    2024年02月14日
    瀏覽(18)
  • LeetCode每日一題:1123. 最深葉節(jié)點的最近公共祖先(2023.9.6 C++)

    LeetCode每日一題:1123. 最深葉節(jié)點的最近公共祖先(2023.9.6 C++)

    目錄 1123. 最深葉節(jié)點的最近公共祖先 題目描述: 實現(xiàn)代碼與解析: dfs 原理思路: ????????給你一個有根節(jié)點? root ?的二叉樹,返回它? 最深的葉節(jié)點的最近公共祖先 ?。 回想一下: 葉節(jié)點 ?是二叉樹中沒有子節(jié)點的節(jié)點 樹的根節(jié)點的? 深度? 為? 0 ,如果某一節(jié)點的

    2024年02月09日
    瀏覽(18)
  • 2023-08-17 LeetCode每日一題(切披薩的方案數(shù))

    點擊跳轉(zhuǎn)到題目位置 給你一個 rows x cols 大小的矩形披薩和一個整數(shù) k ,矩形包含兩種字符: ‘A’ (表示蘋果)和 ‘.’ (表示空白格子)。你需要切披薩 k-1 次,得到 k 塊披薩并送給別人。 切披薩的每一刀,先要選擇是向垂直還是水平方向切,再在矩形的邊界上選一個切

    2024年02月12日
    瀏覽(23)
  • 2023-08-10LeetCode每日一題(下降路徑最小和 II)

    2023-08-10LeetCode每日一題(下降路徑最小和 II)

    點擊跳轉(zhuǎn)到題目位置 給你一個 n x n 整數(shù)矩陣 grid ,請你返回 非零偏移下降路徑 數(shù)字和的最小值。 非零偏移下降路徑 定義為:從 grid 數(shù)組中的每一行選擇一個數(shù)字,且按順序選出來的數(shù)字中,相鄰數(shù)字不在原數(shù)組的同一列。 示例 1: 示例 2: 提示: n == grid.length == grid[i].

    2024年02月13日
    瀏覽(26)
  • 2023-08-23 LeetCode每日一題(統(tǒng)計點對的數(shù)目)

    2023-08-23 LeetCode每日一題(統(tǒng)計點對的數(shù)目)

    點擊跳轉(zhuǎn)到題目位置 給你一個無向圖,無向圖由整數(shù) n ,表示圖中節(jié)點的數(shù)目,和 edges 組成,其中 edges[i] = [u i , v i ] 表示 u i 和 v i 之間有一條無向邊。同時給你一個代表查詢的整數(shù)數(shù)組 queries 。 第 j 個查詢的答案是滿足如下條件的點對 (a, b) 的數(shù)目: a b cnt 是與 a 或者 b

    2024年02月11日
    瀏覽(21)
  • 2023-08-24 LeetCode每日一題(統(tǒng)計參與通信的服務器)

    2023-08-24 LeetCode每日一題(統(tǒng)計參與通信的服務器)

    點擊跳轉(zhuǎn)到題目位置 這里有一幅服務器分布圖,服務器的位置標識在 m * n 的整數(shù)矩陣網(wǎng)格 grid 中,1 表示單元格上有服務器,0 表示沒有。 如果兩臺服務器位于同一行或者同一列,我們就認為它們之間可以進行通信。 請你統(tǒng)計并返回能夠與至少一臺其他服務器進行通信的服

    2024年02月10日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包