代碼隨想錄算法訓練營第三十四天| 860.檸檬水找零, 406.根據身高重建隊列 ,452. 用最少數量的箭引爆氣球

860.檸檬水找零

- LeetCode

思路: 這個問題比較簡單, 用一個字典bill_dict記錄已經收到的錢已經錢的數量, 然后如果收到五元, 字典中的 bill_dict[5] += 1。?收到10元?bill_dict[5] -= 1?bill_dict[10] += 1 。 麻煩的是收到20元, 這時候我們應該優先找 一個10元和一個5元, 沒有10元的時候, 找三個五元。 然后疊加判斷沒辦法找零的條件就可以了。

難點: 無

class Solution:def lemonadeChange(self, bills: List[int]) -> bool:collected_bills = defaultdict(int)for bill in bills:if bill == 5:collected_bills[5] += 1elif bill == 10: # give out 5 billscollected_bills[10] += 1collected_bills[5] -= 1if collected_bills[5] < 0:return Falseelse: # give out 15 billsif collected_bills[5] > 0 and collected_bills[10] > 0:collected_bills[20] += 1collected_bills[5] -= 1collected_bills[10] -= 1elif collected_bills[5] > 2:collected_bills[5] -= 3else:return Falsereturn True

406.根據身高重建隊列?

- LeetCode

思路: 這個問題有點難卡了,我好幾天。。。 一開始的思路是先對 k 排序, 然后對 h 排序, 那么k=0 的時候等于已經排好了,然后對 k=1 的時候, 往前找到一個比它的h大一個的數字insert進去就行了。 但是這樣代碼運行的很慢。 然后發現其實先對 h 倒序排列然后在對k順序排列要簡單很多, 因為當loop 一個 h 的時候可以保證前面的h都是大于這個元素的 h的。?

難點: 排序的方式比較難想到。?

class Solution:def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:people.sort(key=lambda x: [-x[0], x[1]])i, n = 0, len(people)while i < n:k = people[i][1]if k >= i:i += 1continueelse:tmp = people.pop(i)people.insert(k, tmp)i += 1return people

452. 用最少數量的箭引爆氣球?

思路: 這個題是求重疊的區間的問題的。 首先對數組排序,如果發現下一個point 的end 大于前一個point 的start, 就丟掉這兩個point 轉而insert 一個新的point, 這個新的point 表示兩者的重疊區間。 最后看看還剩幾個point 就可以了。

?難點: 第一次提交失敗了,因為重疊區間的定義出了邏輯bug, 重疊區間的 end 應該是兩個區間end的最小值。?

class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:points.sort()points = points[1:] + [points[0]]i, n = 0, len(points)while i < n-1:point = points.pop(0)if point[0] <= points[-1][1]:last_point = points.pop()points.append([max(point[0], last_point[0]), min(point[1], last_point[1])])else:points.append(point)i += 1return len(points)

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

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

相關文章

圖像剪輯|Linux|ImageMagick的初步使用--素描,毛玻璃等特效

前言&#xff1a; ImageMagick在圖像剪輯領域的地位基本等同于FFmpeg&#xff0c;和FFmpeg基本一樣&#xff0c;在Linux下使用此工具的原因是該工具可以使用shell腳本批量剪輯&#xff0c;在Windows下就會比較麻煩一些了 那么&#xff0c;本文主要是記錄一下ImageMagick的一些…

論文閱讀:基于超像素的圖卷積語義分割(圖結構數據)

#Superpixel-based Graph Convolutional Network for Semantic Segmentation github鏈接 引言 GNN模型根據節點特征周圍的邊來訓練節點特征&#xff0c;并獲得最終的節點嵌入。通過利用具有不同濾波核的二維卷積對來自附近節點的信息進行整合&#xff0c;給定超像素方法生成的…

汽車上的各種質量:整備質量、總質量、裝載質量、簧上質量

文章目錄 前言一、整備質量二、額定總質量三、額定裝載質量四、簧上質量 總結 前言 一、整備質量 整備質量指的是汽車按照出廠技術條件完全配備&#xff08;包括備胎、工具、各種油水等&#xff09;的質量。汽車的整備質量也就是人們常說的一輛汽車的自重&#xff0c;它的規范…

MATLAB--pie函數繪制復雜分類餅圖(2)--附案例代碼

MATLAB–pie函數繪制復雜分類數據的餅狀圖 目錄 MATLAB--pie函數繪制復雜分類數據的餅狀圖摘要1. 問題描述2. 具體步驟&#xff1a;3. 繪制結果4. 小結 摘要 在數據可視化中&#xff0c;餅狀圖是一種常用的展示分類數據的方式。之前&#xff0c;文章介紹了使用MATLAB繪制餅狀圖…

數據刪除

目錄 數據刪除 刪除員工編號為 7369 的員工信息 刪除若干個數據 刪除公司中工資最高的員工 Oracle從入門到總裁:??????https://blog.csdn.net/weixin_67859959/article/details/135209645 數據刪除 刪除數據就是指刪除不再需要的數據 delete from 表名稱 [where 刪…

群暉Synology Drive服務搭建結合內網穿透實現云同步Obsidian筆記文件夾

&#x1f308;個人主頁: Aileen_0v0 &#x1f525;熱門專欄: 華為鴻蒙系統學習|計算機網絡|數據結構與算法 ?&#x1f4ab;個人格言:“沒有羅馬,那就自己創造羅馬~” #mermaid-svg-ebec69DBjtGk7apF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

C++字典操作

創建字典 #include<iostream> #include<map> #include<string>using namespace std;int main(){map<string, int> mymap;}賦值 2.1 指定元素賦值 mymap["abc"] 1;2.2 添加鍵值對 mymap.insert(make_pair("bcd", 2));字典的順序…

后端傳給前端的時間字段前端顯示不正確

具體問題是什么呢&#xff0c;就比如我后段有一個字段是TimeStamp類型&#xff0c;從數據庫中查出數據是下面的樣式&#xff1a; 但是前端顯示的是下面的格式&#xff1a; 這個的解決方法還是挺多的&#xff0c;那接下來具體來看看吧~ 第一種&#xff1a; 在application.prop…

Linux使用bcache 將SSD加速硬盤

前言 在Linux下&#xff0c;使用SSD為HDD加速&#xff0c;目前較為成熟的方案有&#xff1a;flashcache&#xff0c;enhanceIO&#xff0c;dm-cache&#xff0c;bcache等&#xff0c;多方面比較以后最終選擇了bcache。 bcache 是一個 Linux 內核塊層超速緩存。它允許使用一個或…

Flink 面試題總結及答案

基礎 state的分類 key state和operate state state 的重分布 Flink狀態管理詳解&#xff1a;Keyed State和Operator List State深度解析 - 掘金 checkpoint 和save point https://zhuanlan.zhihu.com/p/79526638 flink job 的容錯策略 如果在沒有持續消息輸出的情況下&…

19.AUTOSAR MCAL分析(一):Microcontroller Driver

目錄 1. MCAL概述 2. Microcontroller Drivers 2.1 MCU Drivers 2.2 GPT Driver 2.3 WatchDog Driver 2.4 CoreTest 3.小結 <

【短時交通流量預測】基于單層BP神經網絡

課題名稱&#xff1a;基于單層BP神經網絡的短時交通流量預測 版本時間&#xff1a;2023-04-27 代碼獲取方式&#xff1a;QQ&#xff1a;491052175 或者 私聊博主獲取 模型簡介&#xff1a; 城市交通路網中交通路段上某時刻的交通流量與本路段前幾個時段的交通流量有關&…

Android 自定義組件

在 Android 開發中&#xff0c;有時我們需要創建自定義的 UI 組件以滿足特定的需求&#xff0c;這就是 Android 自定義組件的用途。在這篇博客中&#xff0c;我們將介紹如何創建和使用自定義組件&#xff0c;并以一個標題欄組件為例進行說明。 什么是自定義組件&#xff1f; …

【CSP試題回顧】201312-3-最大的矩形

CSP-201312-3-最大的矩形 解題思路 1. 遍歷所有可能的矩形高度&#xff1a; 通過遍歷所有矩形高度來找到最大的矩形&#xff0c;即對每個可能的高度 it&#xff08;從直方圖中的最小高度到最大高度 heightMax&#xff09;&#xff0c;代碼將嘗試找到在這個高度或以上的最長連…

軟件測試相關介紹

什么是軟件測試&#xff1f; 軟件測試&#xff1a;使用技術手段驗證軟件是否滿足使用需求 軟件測試是指通過運行、評估和驗證軟件系統的過程&#xff0c;以確定其是否滿足預期的需求和質量標準。它是軟件開發生命周期中的一個重要環節&#xff0c;旨在發現和修復潛在的缺陷和…

前端錯誤 “TypeError Cannot read properties of undefined (reading ‘xxx‘)

前端錯誤 “TypeError: Cannot read properties of undefined (reading ‘xxx‘) 原因分析及解決 情況一&#xff1a; 出現該錯誤的原因是因為你花括號中的某些屬性未定義。極大可能是因為你寫錯了屬性名稱 情況二&#xff1a; 異步請求獲取數據時&#xff0c;語句可能寫錯&…

Linux操作系統——進程信號

1.信號的概念 生活當中哪些場景算信號呢&#xff1f;比如說你晚上調了個鬧鐘&#xff0c;然后第二天早上你聽到了鬧鐘響了你就知道該起床了&#xff0c;這種機制就叫做信號機制。在生活中我們的信號是非常非常多的&#xff0c;比如說有&#xff1a;紅綠燈&#xff0c;下課鈴聲…

Java中多線程的各種姿勢

在Java中&#xff0c;多線程編程是一種強大的并發編程技術&#xff0c;可以讓你同時執行多個任務。Java提供了多種方式來創建和管理線程。以下是Java中給多線程使用的一些主要方法&#xff1a; 繼承Thread類&#xff1a; 創建一個新的類繼承自Thread類。覆蓋run()方法以定義線程…

爬蟲案例一

首先我舉一個案例比如豆瓣電影排行榜 (douban.com)這個電影&#xff0c;首先我們進去檢查源代碼 說明源代碼有&#xff0c;說明是服務器渲染&#xff0c;可以直接那html 但是返回的結果是空&#xff0c;所以我們需要在頭里面加上User-Agent 然后可以看到有返回的結果&#xff0…

Docker快速集成minio

拉取鏡像&#xff08;默認最新的&#xff09; docker pull minio/minio創建配制和數據映射文件夾&#xff08;用于將容器內的配置和數據映射到本地&#xff09; 這邊的路徑可以修改成自己想要的文件夾 mkdir -p /data/minio/{config,data}啟動容器 (這邊啟動容器要保證本地映…