【調和級數】100321. 優質數對的總數 II

本文涉及知識點

調和級數
質數、最大公約數、菲蜀定理

LeetCode100321. 優質數對的總數 II

給你兩個整數數組 nums1 和 nums2,長度分別為 n 和 m。同時給你一個正整數 k。
如果 nums1[i] 可以被 nums2[j] * k 整除,則稱數對 (i, j) 為 優質數對(0 <= i <= n - 1, 0 <= j <= m - 1)。
返回 優質數對 的總數。
示例 1:
輸入:nums1 = [1,3,4], nums2 = [1,3,4], k = 1
輸出:5
解釋:
5個優質數對分別是 (0, 0), (1, 0), (1, 1), (2, 0), 和 (2, 2)。
示例 2:
輸入:nums1 = [1,2,4,12], nums2 = [2,4], k = 3
輸出:2
解釋:
2個優質數對分別是 (3, 0) 和 (3, 1)。
提示:
1 <= n, m <= 105
1 <= nums1[i], nums2[j] <= 106
1 <= k <= 103

調和級數

nums1中的元素如果不是k的倍數,刪除。是k的倍數, /= k。
cnt1 記錄nums1中各元素的數量。
令 max1 = (nums1)
? \forall ?n ∈ \in nums2。 如果n的m倍(m>0) 在nums1中存在,則是優質對。
如果n × \times ×m > max,則無需繼續枚舉m。
枚舉1到y的不超過y的倍數,時間復雜度:y + y/2+y/3 ? \cdots ? 1 就是調和級數,故時間復雜度是:O(ylogy)。
注意:如果nums2有重復元素,則時間復雜度是O(nn)。比如:全部是1。所以:必須用cnt2記錄nums2各元素數量。

超時代碼

class Solution {
public:long long numberOfPairs(vector<int>& nums1, vector<int>& nums2, int k) {int iMax = *std::max_element(nums1.begin(), nums1.end());vector<int> vCnt1(iMax + 1);for (const auto& n : nums1) {if (0 != n % k) {continue;}vCnt1[n / k]++;}while (vCnt1.size() &&(vCnt1.back() == 0)) {vCnt1.pop_back();}iMax = vCnt1.size() - 1;long long llRet = 0;for (const auto& n : nums2) {for (int tmp = n; tmp <= iMax; tmp += n) {llRet += vCnt1[tmp];}}return llRet;}
};

代碼

class Solution {
public:long long numberOfPairs(vector<int>& nums1, vector<int>& nums2, int k) {vector<int> tmp;for (const auto& n : nums1) {if (0 != n % k) { continue; }tmp.emplace_back(n/k);}if (tmp.empty()) { return 0; }int iMax = *std::max_element(tmp.begin(), tmp.end());vector<int> vCnt1(iMax + 1);for (auto& n : tmp) {vCnt1[n]++;}const int iMax2 = *std::max_element(nums2.begin(), nums2.end());vector<long long> vCnt2(iMax2+1);for (auto& n : nums2) {vCnt2[n]++;}long long llRet = 0;for (int i = 1; i <= iMax2; i++ ) {for (int tmp = i; tmp <= iMax; tmp += i) {llRet += vCnt1[tmp]*vCnt2[i];}}return llRet;}
};

擴展閱讀

視頻課程

有效學習:明確的目標 及時的反饋 拉伸區(難度合適),可以先學簡單的課程,請移步CSDN學院,聽白銀講師(也就是鄙人)的講解。
https://edu.csdn.net/course/detail/38771

如何你想快速形成戰斗了,為老板分憂,請學習C#入職培訓、C++入職培訓等課程
https://edu.csdn.net/lecturer/6176

相關下載

想高屋建瓴的學習算法,請下載《喜缺全書算法冊》doc版
https://download.csdn.net/download/he_zhidan/88348653

我想對大家說的話
《喜缺全書算法冊》以原理、正確性證明、總結為主。
聞缺陷則喜是一個美好的愿望,早發現問題,早修改問題,給老板節約錢。
子墨子言之:事無終始,無務多業。也就是我們常說的專業的人做專業的事。
如果程序是一條龍,那算法就是他的是睛

測試環境

操作系統:win7 開發環境: VS2019 C++17
或者 操作系統:win10 開發環境: VS2022 C++17
如無特殊說明,本算法用**C++**實現。

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

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

相關文章

[Android]在后臺線程執行耗時操作,然后在主線程更新UI

1.Coroutines&#xff08;官方推薦&#xff09; Coroutines 提供了一種輕量級的線程管理方式&#xff0c;使得在后臺線程執行任務和在主線程更新 UI 變得簡單。以下是如何在 Kotlin 中使用 Coroutines 來處理耗時邏輯并更新 UI 的步驟&#xff1a; 添加 Coroutines 依賴: 首…

數據結構·一篇搞定隊列!

hello&#xff0c;大家好啊&#xff0c;肖恩又拖更了&#xff0c;你們聽我狡辯&#xff0c;前段時間有期中考試&#xff0c;so我就沒什么時間寫這個&#xff0c;在這給大家道個歉&#x1f62d;&#x1f62d;&#x1f62d; 我后面一定盡力不拖更 那么接下來&#xff0c;我們來看…

Greenplum使用hbase外部表

概述 GP可以通過pxf協議上的hbase外表功能&#xff0c; 在數據庫中創建外部表&#xff0c;映射hbase table&#xff0c;以直接在gp中訪問 hbase數據&#xff0c;方便將hbase的查詢結果集保留在gp中 hbase端準備 HBase基礎概念&#xff1a; ?HBase 列包含兩個組件&#xff1…

粒子輻照環境中相機鏡頭防護及LabVIEW圖像處理注意事項

在粒子輻照環境測試電路板性能的實驗中&#xff0c;需要對相機鏡頭進行有效防護&#xff0c;同時利用LabVIEW進行圖像識別和處理。本文將討論相機鏡頭防護的關鍵因素和LabVIEW處理過程中的注意事項&#xff0c;包括防輻射材料選擇、輻射屏蔽措施、散熱管理、空間布局及LabVIEW軟…

c++11:左值引用和右值引用《全家桶》

總結一下C11中涉及到左值引用和右值引用的場景。 1 左值引用和右值引用的區別 左值引用 定義&#xff1a;對左值的引用。目的是避免內存拷貝&#xff0c;類似c中的指針,兩個場景&#xff1a;函數傳參、函數返回值。 右值引用 定義&#xff1a;對右值的引用。兩個場景&#…

【機器學習-k近鄰算法-01】 | Scikit-Learn工具包進階指南:機器學習sklearn.neighbors模塊之k近鄰算法實戰

&#x1f3a9; 歡迎來到技術探索的奇幻世界&#x1f468;?&#x1f4bb; &#x1f4dc; 個人主頁&#xff1a;一倫明悅-CSDN博客 ?&#x1f3fb; 作者簡介&#xff1a; C軟件開發、Python機器學習愛好者 &#x1f5e3;? 互動與支持&#xff1a;&#x1f4ac;評論 &…

騎行 - 新區永旺出發的環太湖路線

環過好幾次太湖&#xff0c;但對路線都沒太在意&#xff0c;都是跟著別人走的。這次自己制定一個路書&#xff0c;方便下次自己一個人環太湖時使用。 開始是使用高德地圖做路書&#xff0c;只能在PC上做。我用的是網頁版&#xff0c;每次選點太麻煩了。要輸入地址搜索&#xff…

開源博客項目Blog .NET Core源碼學習(27:App.Hosting項目結構分析-15)

本文學習并分析App.Hosting項目中后臺管理頁面的角色管理頁面。 ??角色管理頁面用于顯示、檢索、新建、編輯、刪除角色數據同時支持按角色分配菜單權限&#xff0c;以便按角色控制后臺管理頁面的菜單訪問權限。角色管理頁面附帶一新建及編輯頁面&#xff0c;以支撐新建和編輯…

電纜廠可視化:提升生產透明度與運營效率

圖撲電纜廠可視化系統通過實時監控和數據分析&#xff0c;提高生產過程的透明度和可控性&#xff0c;優化資源配置和質量管理&#xff0c;顯著提升運營效率和產品質量。

啟動SpringBoot項目及解決端口占用問題(指令版)

打包SpringBoot 項目 需要將 SpringBoot 項目進行打包。可以使用 Maven 的快捷工具&#xff0c;或者在項目的 pom.xml 文件所在目錄執行以下命令&#xff1a; mvn clean package部署注意 Windows系統下&#xff0c;按照以下方式在cmd窗口以管理員身份允許使用命令啟動spring…

Flutter 中的 StatefulBuilder 小部件:全面指南

Flutter 中的 StatefulBuilder 小部件&#xff1a;全面指南 在Flutter中&#xff0c;StatefulBuilder是一個高效的小部件&#xff0c;它根據給定的構建函數來構建widget&#xff0c;并在組件樹中只對需要重新構建的部分進行更新。這使得它在性能優化方面非常有用&#xff0c;特…

電子電器架構 - AUTOSAR ON THE AIR

電子電器架構 - AUTOSAR ON THE AIR 我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 屏蔽力是信息過載時代一個人的特殊競爭力,任何消耗你的人和事,多看一眼都是你的不對。非必要不費力證明自己…

Mybase長久破解

1、軟件下載好之后&#xff0c;找到文件mybase8.ini文件 2、使用記事本打開&#xff0c;通過 Ctrl F 輸入快速找到屬性設置FirstUseOn.UserLic.App&#xff0c;將等號后面的數值刪掉保存即可 3、使用防護中心–>自定義防護&#xff08;記得開啟&#xff09; 4、添加規則…

Golang文件操作

文章目錄 文件操作基本介紹普通的文件操作方式&#xff08;os包&#xff09;帶緩沖的文件操作方式&#xff08;bufio包&#xff09;文件拷貝操作&#xff08;io包&#xff09; 命令行參數基本介紹解析命令行參數&#xff08;flag包&#xff09; JSON基本介紹JSON序列化JSON反序…

【MySQL精通之路】MySQL的使用(3)-連接到服務器的配置

目錄 1.連接建立的命令選項 1.1.--default-auth 1.2.--hosthost_name, -h host_name 1.3.--password[pass_val], -p[pass_val] 1.4.--password1[pass_val] 1.5.--password2[pass_val] 1.6.--password3[pass_val] 1.7.--pipe, -W 1.8.--plugin-dirdir_name 1.9.--port…

【YOLOv10訓練】:報錯 AttributeError: ‘str‘ object has no attribute ‘view‘ 解決方法

YOLOv10訓練報錯 YOLOv10是在YOLOv8基礎上修改的&#xff0c;即&#xff1a;訓練方法和過程是相同的。 但按照v8訓練程序train.py&#xff0c;如下所示&#xff0c;直接訓練&#xff1a; from ultralytics import YOLO# Load a model model YOLO("ultralytics/cfg/mod…

真拿AI賺到錢的人,不在朋友圈里

1 最近有張兩大AI巨頭對比的梗圖給我看樂了&#xff0c;玩兒AI的還在做產品&#xff0c;玩兒焦慮的已經在數錢了。 這也是在做AI&#xff0c;只不過是唉聲嘆氣的ai。 要我說&#xff0c;現在缺的根本不是AI&#xff0c;而是【有用的AI】。 恩格斯老師說過一句話&#xff1a…

科林Linux6_網絡

#include<sys/socket.h> #include<arpa/inet.h> //大小端轉換 #include<netdb.h> //DNS一、Socket套接字 為了開發網絡應用&#xff0c;系統提供一套API函數接口&#xff0c;用于網絡應用開發&#xff0c;這些接口稱為套接字函數 struct sockaddr_in…

數據庫管理-第194期 網絡加速RDMA初探(20240526)

數據庫管理194期 2024-05-26 數據庫管理-第194期 網絡加速RDMA初探&#xff08;20240526&#xff09;1 概念2 發展3 使用總結 數據庫管理-第194期 網絡加速RDMA初探&#xff08;20240526&#xff09; 作者&#xff1a;胖頭魚的魚缸&#xff08;尹海文&#xff09; Oracle ACE A…

英文 海量的學習句子比單獨的記單詞效果要好,格句致知。

英文 海量的學習句子比單獨的記單詞效果要好 句子有上下文、場景和時態等&#xff0c;能形成劇情&#xff0c;變得生動有趣。 如果一句沒聽懂&#xff0c;還繼續聽就是浪費時間了。要一句一句地深究&#xff0c;不然就要讀好幾遍&#xff0c;還得背誦。要深入理解&#xff0c…