每日算法刷題Day30 6.13:leetcode二分答案2道題,用時1h10min

5. 1201.丑數III(中等)

1201. 丑數 III - 力扣(LeetCode)

思想

1.丑數是可以被 a b c 整除的 正整數
給你四個整數:nabc ,請你設計一個算法來找出第 n 個丑數。
2.此題是4. 878.第N個神奇數字的進階版,從兩個數的容斥原理變成三個數的容斥原理,同理即可

代碼

c++:

class Solution {
public:bool check(int n, int a, int b, int c, long long bei_ab, long long bei_ac,long long bei_bc, long long bei_abc, long long mid) {long long cnt = 0;cnt = mid / a + mid / b + mid / c - mid / bei_ab - mid / bei_ac -mid / bei_bc + mid / bei_abc;if (cnt >= n)return true;elsereturn false;}long long gcd(int a, int b) {if (b == 0)return a;return gcd(b, a % b);}int nthUglyNumber(int n, int a, int b, int c) {long long bei_ab = 1LL * a / gcd(a, b) * b;long long bei_ac = 1LL * a / gcd(a, c) * c;long long bei_bc = 1LL * b / gcd(b, c) * c;long long bei_abc = 1LL * bei_ab / gcd(bei_ab, c) * c;long long left = min({a, b, c}), right = min({a, b, c}) * n, res = 0;while (left <= right) {long long mid = left + ((right - left) >> 1);if (check(n, a, b, c, bei_ab, bei_ac, bei_bc, bei_abc, mid)) {res = mid;right = mid - 1;} elseleft = mid + 1;}return res;}
};
6. 373.查找和最小的K對數字(中等,學習優先隊列小頂堆)

373. 查找和最小的 K 對數字 - 力扣(LeetCode)

思想

1.給定兩個以 非遞減順序排列 的整數數組 nums1nums2 , 以及一個整數 k
定義一對值 (u,v),其中第一個元素來自 nums1,第二個元素來自 nums2
請找到和最小的 k 個數對 (u1,v1), (u2,v2)(uk,vk)
2.一開始想的是二分答案和最小的第k個和,但是check函數里面雙指針不好寫判斷,所以學習優先隊列最小堆寫法
3.因為是按照和最小排序,所以最小堆比較的元素一定是和,即priority_queue的第一個元素是和,但是也要記錄下標(i,j)從而能訪問下一個元素,所以優先隊列里面元素是三元組turple<int,int,int>,而優先隊列默認是升序最大堆,且沒有三元組的降序最小堆寫法,需自己寫,為了簡單存入和的負值即可
接下來考慮入堆,目前元素為(i,j),下一個入堆元素為(i+1,j)或者(i,j+1),但是會出現一個問題,(i+1,j)入堆,然后(i+1,j+1)入堆,而如果(i,j+1)入堆,然后(i+1,j+1)又會入堆一次,導致(i+1,j+1)入堆兩次,解決辦法是先讓所有(i,0)入堆(數量小于k),然后接下來入堆的只有(i,j+1)了(即固定i更新j)

代碼

c++:

class Solution {
public:vector<vector<int>> kSmallestPairs(vector<int>& nums1, vector<int>& nums2,int k) {int n1 = nums1.size(), n2 = nums2.size();priority_queue<tuple<int, int, int>> pq;vector<vector<int>> res;for (int i = 0; i < min(n1, k); ++i) {pq.emplace(-nums1[i] - nums2[0], i, 0); // 先讓所有(i,0)入堆,因為是小根堆,所以放負值}while (res.size() < k && !pq.empty()) {auto t = pq.top();pq.pop();int i = get<1>(t), j = get<2>(t);res.push_back({nums1[i], nums2[j]});if (j + 1 < n2)pq.emplace(-nums1[i] - nums2[j + 1], i, j + 1); //優先隊列不是順序訪問,所以不用加back}return res;}
};

學習:
1.三元組tuple<int,int,int> t,訪問三個元素get<0/1/2>(t)
2.vector,deque,list這些順序訪問才是push_backemplace_back,且vector<vector<int>>插入一整行要用push_back({i,j}),不能用emplace_back(i,j)
prioriyt_queue這些非順序訪問是emplace

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

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

相關文章

Appium+python自動化(二十一)- Monkey指令操作手機

第一式 - 隱藏命令 monkey隱藏的兩個命令&#xff1a; –pck-blacklist-file<黑名單文件><br><br>–pck-whitelist-file<白名單文件> monkey還有一個隱藏的命令那就是&#xff1a; –f<腳本文件>:可以指定monkey的自定義腳本 一般monkey測試…

微信小程序動態效果實戰指南:從懸浮云朵到絲滑列表加載

小紅書爆款交互設計解析&#xff0c;附完整代碼&#xff01; &#x1f525; 一、為什么動態效果是小程序的關鍵競爭力&#xff1f; 用戶留存提升&#xff1a;數據顯示&#xff0c;86.3%的微商從業者依賴微信小程序&#xff0c;而動態效果能顯著降低跳出率。技術賦能體驗&#…

【機器學習】SAE(Sparse Autoencoders)稀疏自編碼器

SAE(Sparse Autoencoders)稀疏自編碼器 0.引言 大模型一直被視為一個“黑箱”&#xff0c;研究人員對其內部神經元如何相互作用以實現功能的機制尚不清楚。因此研究機理可解釋性&#xff08;Mechanistic Interpretability&#xff09;就成為了一個熱門研究方向。大模型的復雜…

抖音授權登錄-獲取用戶授權調用憑證

實現微信小程序獲取抖音授權,使用Java實現抖音授權登錄,您需要使用抖音開放平臺提供的API 第一步 :抖音獲取授權碼 前提條件 ?需要去官網為應用申請 scope 的使用權限。?需要在本接口的 scope 傳參中填上需要用戶授權的 scope,多個 scope 以逗號分割。?用戶授權通過后…

普通人怎樣用好Deepseek?

今年4月份左右&#xff08;2025年&#xff09;&#xff0c;我在上班路上開車&#xff0c;一邊聽著「黑客與畫家」的播客&#xff0c;一邊想著字節的Trae為啥能夠遠程編程&#xff0c;而我的poclogsender[1] [2]卻只能在本地打日志&#xff0c;3天之后&#xff0c;借助deepseek我…

Python ROS2【機器人中間件框架】 簡介

銷量過萬TEEIS德國護膝夏天用薄款 優惠券冠生園 百花蜂蜜428g 擠壓瓶純蜂蜜巨奇嚴選 鞋子除臭劑360ml 多芬身體磨砂膏280g健70%-75%酒精消毒棉片濕巾1418cm 80片/袋3袋大包清潔食品用消毒 優惠券AIMORNY52朵紅玫瑰永生香皂花同城配送非鮮花七夕情人節生日禮物送女友 熱賣妙潔棉…

織夢dedecms {dede:sql} LIKE模糊查詢問題 多出‘號

我們在用到dede:sql這個標簽時候&#xff0c;查詢語句中 LIKE %~title~%&#xff0c;~title~這個like后會出現單引號&#xff0c;造成查詢出錯或者沒有結果&#xff0c;下面就需要修改一下sql.lib.php這個文件&#xff0c;我們需要把自動為語句添加單引號去掉。 找到/include/…

Cursor-1.0安裝Jupyter-Notebook,可視化運行.ipynb文件中Python分片代碼

Cursor 1.0是AI代碼編輯器的里程碑的最新版本。 Cursor - AI 代碼編輯器 Cursor - The AI Code Editor 下載 Cursor 我使用的Cursor版本信息 Version: 1.0.0 (Universal) VSCode Version: 1.96.2 Commit: 53b99ce608cba35127ae3a050c1738a959750860 Date: 2025-06-04T19:21:39.…

SQL進階之旅 Day 28:跨庫操作與ETL技術

【SQL進階之旅 Day 28】跨庫操作與ETL技術 文章簡述 在現代數據驅動的業務場景中&#xff0c;數據往往分布在多個數據庫系統中&#xff0c;如MySQL、PostgreSQL、Oracle等。如何高效地進行跨庫操作和**數據集成&#xff08;ETL&#xff09;**成為數據工程師和數據庫開發人員必…

Flutter之GetX框架的使用

文章目錄 前言GetX使用建議狀態管理GetX快速上手GetX基本功能介紹**核心作用****代碼示例****關鍵細節****性能建議** 參考鏈接 前言 在Reddit上&#xff0c;詬病GetX的聲音很多&#xff0c;主要是說它做的事情太多&#xff0c;不是單一功能組件&#xff0c;違反單一職責原則。…

Kettle數據抽取(二)

一、腳本運用 從本地ORACLE11 數據庫 抽取數據到 華為MYSQL8.1 數據庫 抽取前先刪除MYSQL8.1 數據庫中emp_dept_salgrade表原有數據,避免重復 二、插入表更新 事實上前面一種方法不是增量處理,因為是全部刪除合部重新寫入相當于初始化一樣,這種情形,如果數據量較大,如有1…

一套高質量的博客平臺、社交應用UI

這是一套移動端UI設計素材包含14個高質量PSD文件&#xff0c;涵蓋博客社交類APP的核心頁面&#xff0c;包括登錄界面、動態展示、文章詳情、聊天會話等常用場景。所有素材均為可編輯PSD格式&#xff0c;支持快速二次開發&#xff0c;適用于移動網站和APP項目。資源提供完整的UI…

麒麟信安支撐2025年電力監控系統安全運維新技能推廣應用示范培訓班順利舉辦

近日&#xff0c;由國調中心主辦、國網技術學院電網運行培訓部承辦的“2025年電力監控系統安全運維新技能推廣應用示范培訓班&#xff08;第一期&#xff09;”順利舉辦。電網運行培訓部高度重視本次培訓組織工作&#xff0c;在國調中心的指導下&#xff0c;精心編制培訓方案&a…

支付系統架構圖

簡明產品架構圖 1. 商戶門戶 商戶通過該門戶管理與支付平臺的所有互動&#xff0c;包括&#xff1a; 登錄&#xff1a;商戶進入系統&#xff0c;進行身份驗證。 入駐&#xff1a;新商戶注冊并加入平臺&#xff0c;開始使用支付服務。 訂單管理&#xff1a;商戶可以管理自己…

企業如何一鍵復制 DolphinScheduler 項目到新項目服務器?全套自動化方案來了!(企業不外傳的實用工具)

在企業生產實踐中,常見的一種場景是:一個大數據調度項目需要為多個客戶分別部署在不同服務器上,而每個客戶的任務邏輯、工作流結構、資源文件基本相同。這種情況下,如果每次都手動創建 DolphinScheduler 項目、上傳資源文件、配置流程和參數,不僅浪費大量時間,還極容易出…

Oracle中10個索引優化

Oracle數據庫作為一個功能強大的企業級數據庫系統&#xff0c;對于索引的優化有著豐富的技巧和方法。理解和運用這些技巧可以顯著提高數據庫性能。 示例代碼&#xff1a; – 假設我們有一個員工表 CREATE TABLE employees ( emp_id NUMBER PRIMARY KEY, name VARCHAR2(100), de…

【cv學習筆記】YOLO系列筆記

寫在前面&#xff1a;本文主要介紹YOLO系列的整體框架&#xff0c;以及改進點的介紹。前面有型號的類型是經典&#xff0c;常被應用&#xff0c;YOLOv5&#xff0c;YOLOv8&#xff0c;和YOLOv11是ultralytics公司作品 *YOLOv5 Ultralytics YOLOv5 -Ultralytics YOLO 文檔 YOL…

Ubuntu下搭建Black Magic Probe (BMP) 編譯環境

版本和環境信息如下&#xff1a; PC平臺&#xff1a; Windows 11 專業版 虛擬機運行平臺&#xff1a;Oracle VM VirtualBox 7.1.6 Linux虛擬機&#xff1a; Ubuntu24.04 Debug調試器&#xff1a; BlackMagicProbe(BMP) 開源調試器&#xff1a;WeAct STM32F103CBT6 BluePill 核心…

Spring Cloud Gateway 動態路由實現方案

動態路由的核心需求&#xff1a;在不重啟網關的情況下&#xff0c;實時修改路由規則。以下是 4 種實現方案&#xff1a; 方案 1&#xff1a;基于內存的動態路由&#xff08;RefreshRoutesEvent&#xff09; 適用場景&#xff1a;臨時修改&#xff0c;重啟失效 Autowired pri…

Flutter 路由守衛全面解析:從原理到實踐

路由守衛是現代移動應用開發中不可或缺的重要機制&#xff0c;它如同應用的"安檢系統"&#xff0c;在頁面跳轉前進行必要的檢查和攔截。本文將深入探討 Flutter 中路由守衛的實現原理、多種實現方案以及實際應用場景&#xff0c;幫助開發者構建更安全、更可靠的 Flut…