日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 1936. 新增的最少台阶数

發布時間:2024/7/5 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1936. 新增的最少台阶数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給你一個 嚴格遞增 的整數數組 rungs ,用于表示梯子上每一臺階的 高度
當前你正站在高度為 0 的地板上,并打算爬到最后一個臺階。

另給你一個整數 dist 。
每次移動中,你可以到達下一個距離你當前位置(地板或臺階)不超過 dist 高度的臺階。
當然,你也可以在任何正 整數 高度處插入尚不存在的新臺階。

返回爬到最后一階時必須添加到梯子上的 最少 臺階數

示例 1: 輸入:rungs = [1,3,5,10], dist = 2 輸出:2 解釋: 現在無法到達最后一階。 在高度為 78 的位置增設新的臺階,以爬上梯子。 梯子在高度為 [1,3,5,7,8,10] 的位置上有臺階。示例 2: 輸入:rungs = [3,6,8,10], dist = 3 輸出:0 解釋: 這個梯子無需增設新臺階也可以爬上去。示例 3: 輸入:rungs = [3,4,6,7], dist = 2 輸出:1 解釋: 現在無法從地板到達梯子的第一階。 在高度為 1 的位置增設新的臺階,以爬上梯子。 梯子在高度為 [1,3,4,6,7] 的位置上有臺階。示例 4: 輸入:rungs = [5], dist = 10 輸出:0 解釋:這個梯子無需增設新臺階也可以爬上去。提示: 1 <= rungs.length <= 10^5 1 <= rungs[i] <= 10^9 1 <= dist <= 10^9 rungs 嚴格遞增

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/add-minimum-number-of-rungs
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 模擬超時,108 / 117 個通過測試用例
class Solution { public:int addRungs(vector<int>& rungs, int dist) {int h = 0, reach = -1, ans = 0;for(int i = 0; i < rungs.size(); ++i){if(rungs[i]-h <= dist) // 能夠著{reach = i;}else // 夠不著了{if(reach != -1){h = rungs[reach];reach = -1;}else{ans++;h += dist;}i--;}}return ans;} };

優化下,直接相鄰的距離需要幾個中間臺階

class Solution { public:int addRungs(vector<int>& rungs, int dist) {int h = 0, ans = 0;for(int i = 0; i < rungs.size(); ++i){ans += (rungs[i]-h-1)/dist;h = rungs[i];}return ans;} };

92 ms 52.9 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 1936. 新增的最少台阶数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。