代碼隨想錄訓練營第二十九天 134加油站 135分發糖果 860檸檬水找零 406根據身高重建隊列

第一題:

原題鏈接:134. 加油站 - 力扣(LeetCode)

思路:

需要三個變量,一個變量start記錄結果也就是出發的第一個加油站,一個變量curSum來記錄此時加油耗油后剩余的油量,如果發現curSum小于0的話就直接從當前加油站的下一個加油站作為第一個加油站重新計算;一個變量totalSum來記錄行駛完一圈后剩余的油量,如果小于0說明行駛不了一圈返回-1;

代碼如下:

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int start = 0;int curSum = 0;int totalSum = 0;for(int i = 0; i < gas.size(); i++){curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if(curSum < 0){start = i + 1;curSum = 0;}}if(totalSum < 0) return -1;return start;}
};

第二題:

原題鏈接:135. 分發糖果 - 力扣(LeetCode)

思路:

先從左向右遍歷記錄右孩子比左孩子多的情況,然后再從右向左遍歷記錄左孩子比右孩子高分的情況。從右向左遍歷的時候要基于從左向右遍歷后的結果進行計算。

兩者比較完取最大值。

代碼如下:

class Solution {
public:int candy(vector<int>& ratings) {vector<int> res(ratings.size(), 1);for(int i = 1; i < ratings.size(); i++){if(ratings[i] > ratings[i - 1]){res[i] = res[i - 1] + 1;}}for(int i = ratings.size() - 2; i >= 0; i--){if(ratings[i] > ratings[i + 1]){res[i] = max(res[i], res[i + 1] + 1);}}int sum = 0;for(int i = 0; i < res.size(); i++){sum += res[i];}return sum;}
};

第三題:

原題鏈接:860. 檸檬水找零 - 力扣(LeetCode)

思路:

收到五塊直接收下,

收到十塊需要看有沒有五塊,沒有五塊直接返回false,如果有五塊減一。

收到二十塊,如果沒有五塊直接返回false,如果沒有十塊且五塊少于3張,也返回false。找零的時候先找十塊的,沒有十塊的再找五塊。

代碼如下:

class Solution {
public:bool lemonadeChange(vector<int>& bills) {unordered_map<int, int> map;for(int i = 0; i < bills.size(); i++){if(bills[i] == 5) map[5] += 1;if(bills[i] == 10){map[10] += 1;if(map[5] == 0) return false;map[5] -= 1;}if(bills[i] == 20){map[20] += 1;if(map[5] == 0) return false;if(map[10] == 0 && map[5] < 3) return false;if(map[10]){map[10]--;map[5]--;}else{map[5] -= 3;}}}return true;}
};

第四題:

原題鏈接:406. 根據身高重建隊列 - 力扣(LeetCode)

先根據身高進行從大到小的排序,如果身高相同就根據k進行從小到大排序。

然后遍歷數組,根據k的值插入到結果數組中。

按照身高排序之后,優先按身高高的people的k來插入,后序插入節點也不會影響前面已經插入的節點,最終按照k的規則完成了隊列。

代碼如下:

class Solution {
public:static bool cmp(vector<int> a, vector<int> b){if(a[0] == b[0]) return a[1] < b[1];return a[0] > b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), cmp);vector<vector<int>> res;for(int i = 0; i < people.size(); i++){int position = people[i][1];res.insert(res.begin() + position, people[i]);}return res;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41370.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微前端的需求有哪些?微前端的原理是怎么樣的?為什么這么設計,及微前端的應用場景是什么?對有些客戶,前端的重要性高于后端

微前端&#xff08;Micro Frontends&#xff09;是將前端應用拆分成多個獨立、可部署的部分&#xff0c;每個部分可以由不同的團隊獨立開發、測試、部署和維護。這種架構類似于微服務在后端的應用&#xff0c;是為了應對復雜前端應用的維護和擴展問題而提出的。 來龍去脈 背景…

【吳恩達機器學習-week2】可選實驗:使用 Scikit-Learn 進行線性回歸

支持我的工作 &#x1f389; &#x1f4c3;親愛的朋友們&#xff0c;感謝你們一直以來對我的關注和支持&#xff01; &#x1f4aa;&#x1f3fb; 為了提供更優質的內容和更有趣的創作&#xff0c;我付出了大量的時間和精力。如果你覺得我的內容對你有幫助或帶來了歡樂&#xf…

庫表設計(基礎)-實體與設計關系

實體關系分析 1 實體關系是指系統事務之間的聯系。 2 實體關系需要雙向分析。 3 實體關系決定表關系。 實體關系的種類 1 一對一 2 一對多 3 多對多 舉例&#xff1a; 上面關系如下&#xff1a; 班級和學生 &#xff1a; 1:N 學生和課程&#xff1a;N : N 學生和學籍檔案&a…

MISRA C 和MISRA C++:汽車軟件安全的守護者

一、MISRA C與C語言 自1972年Dennis MacAlistair Ritchie在美國貝爾實驗室創造C語言以來&#xff0c;它已成為當今最流行的編程語言之一。C語言以其使用的靈活性、功能的豐富性而廣受歡迎&#xff0c;但同時也因其寬松的語法和不嚴格的數據類型給開發的產品帶來了安全隱患。 …

如何批量給文件名添加編號?這個方法速度快!操作簡單!

如何批量給文件名添加編號&#xff1f;這個方法速度快&#xff01;操作簡單&#xff01;批量給文件重命名&#xff0c;這個是在工作中和生活中經常要用到的一個小技巧&#xff0c;許多人還不知道怎么操作&#xff0c;當然如果要按一定的格式和規律重命名大量的文件&#xff0c;…

Linux內核 -- 多核通信之RPMSG驅動使用

Linux Kernel RPMsg 驅動注冊流程的高級用法與注意事項 在Linux Kernel中&#xff0c;RPMsg&#xff08;Remote Processor Messaging&#xff09;是一種用于不同處理器之間通信的機制&#xff0c;通常用于多核系統中的通信&#xff0c;如主處理器和協處理器之間的消息傳遞。了…

巴西電子游戲PWA借助海外快手kwai社交廣告出海趨勢解讀

巴西電子游戲PWA借助海外快手kwai社交廣告出海趨勢解讀 在數字化時代的浪潮中&#xff0c;電子游戲行業蓬勃發展&#xff0c;而廣告投放策略也隨之日新月異。特別是在巴西這樣一個充滿活力的市場&#xff0c;電子游戲的普及與流行程度不容小覷。在這樣的背景下&#xff0c;在數…

java數據結構集合復習之ArrayList與順序表

前言: 這是我最一年學習java的一部分的回顧總結 1.List 1.1什么是List? 在框架集合中,List是一個接口,繼承自Collection。 Collection也是一個接口&#xff0c;該接口中規范了后序容器中常用的一些方法&#xff0c;具體如下所示 --------boolean add(E e)尾插 evoid a…

[pwn]靜態編譯

靜態編譯 1. 棧足夠大的情況下 程序在ida打開后&#xff0c;左側的函數欄目沒有紅色&#xff08;系統調用的函數&#xff09;&#xff0c;而只有一些靜態函數&#xff0c;通常這類文件的大小會必普通的pwn題程序要大得多。 這種靜態編譯的題沒有調用庫函數&#xff0c;也就沒…

百度云智能媒體內容分析一體機(MCA)建設

導讀 &#xff1a;本文主要介紹了百度智能云MCA產品的概念和應用。 媒體信息海量且復雜&#xff0c;采用人工的方式對視頻進行分析處理&#xff0c;面臨著效率低、成本高的困難。于是&#xff0c;MCA應運而生。它基于百度自研的視覺AI、ASR、NLP技術&#xff0c;為用戶提供音視…

Vue 性能革命:揭秘前端優化的終極技巧;Vue優化技巧,解決Vue項目卡頓問題

目錄 Vue優化路徑 一、使用key 二、使用凍結對象 三、使用函數式組件 四、使用計算屬性 五、使用非實時綁定的表單項 六、保持對象引用穩定 6.1、保持對象引用穩定定義 6.2、保持對象引用穩定與不穩定的例子 6.3、vue2判斷數據是否變化是通過hasChanged函數實現的 ①…

2024年【四川省安全員B證】考試及四川省安全員B證考試題

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2024年【四川省安全員B證】考試及四川省安全員B證考試題&#xff0c;包含四川省安全員B證考試答案和解析及四川省安全員B證考試題練習。安全生產模擬考試一點通結合國家四川省安全員B證考試最新大綱及四川省安全員B證…

golang項目中gorm框架的配置和具體使用

最近在改造golang項目&#xff0c;從postgre數據庫遷移到達夢數據庫&#xff0c;我還想在改造后的項目使用 gorm 操作數據庫&#xff0c;保持較小的改動。查找了不少資料&#xff0c;最終從以下兩篇文章中借鑒了不少 1、Gorm 入門介紹與基本使用 這篇知乎文章詳細介紹了 gorm 框…

C語言 -- 操作符詳解?

C語言 -- 操作符詳解? 1. 操作符的分類2. 二進制和進制轉換?2.1 2進制轉10進制?2.1.1 10進制轉2進制數字? 2.2 2進制轉8進制和16進制?2.2.1 2進制轉8進制?2.2.2 2進制轉16進制? 3. 原碼、反碼、補碼?4. 移位操作符?4.1 左移操作符? 4.2 右移操作符?5. 位操作符&…

Symfony實戰手冊:PHP框架的高級應用技巧

引言 Symfony是一個功能強大且廣泛應用于PHP應用程序開發的框架&#xff0c;它提供了許多高級特性和工具&#xff0c;可以幫助開發人員更高效地構建和管理復雜的Web應用程序。以下是Symfony框架的幾個關鍵方面及其高級應用技巧&#xff1a; 1. 路由和控制器 Symfony的路由組…

suricata7 rule格式

suricata 7.0.5 suricata rule由三部分組成&#xff0c; action, header, options action,決定當前規則匹配上后需要執行的動作header,定義當前規則的協議&#xff0c;IP地址&#xff0c;端口&#xff0c;方向options,定義了具體的規則 一、 action 合法的action值有&#x…

Linux_共享內存通信

目錄 1、共享內存原理 2、申請共享內存 2.1 ftok 2.2 測試shmget、ftok 2.3 查看系統下的共享內存 3、關聯共享內存 3.1 測試shmat 4、釋放共享內存 4.1 測試shmctl 5、實現共享內存通信 6、共享內存的特性 結語 前言&#xff1a; 在Linux下&#xff0c;有一…

爆!Java高級特性之Stream API詳解

爆&#xff01;Java高級特性之Stream API詳解 Java 8引入的Stream API可以說是一個革命性的特性,讓我們告別了又臭又長的for循環,迎來了函數式編程的春天。今天就讓我們來一起深入了解這個讓人又愛又恨的Stream API吧! 什么是Stream? Stream就像一個高級的迭代器,允許我們以…

分支與循環

目錄 1. if語句 1&#xff09;if 2) else 3&#xff09;分支中包含多條語句 4&#xff09;if嵌套 2.關系操作符 3.條件操作符 4.邏輯操作符&#xff1a;&& || ! 1) 邏輯取反運算符 !?編輯 2 與運算符?編輯 3) 或運算符?編輯 4) 閏年的判斷 5) 短路 …

LangChain 概述 (模塊索引)

文章目錄 一、下載二、核心功能1、流式傳輸 streaming 三、LCEL四、組成部分1、Promp template2、Example selectors (示例選擇器)3、Chat models (聊天模型)4、Messages (消息)5、LLMs (大語言模型) 一、下載 二、核心功能 其中包括以下內容&#xff1a; 從模型中返回結構化的…