7.6 優先隊列| dijkstra | hash | rust

?

lc1337

pair存入,lambda sort后取出,最開始想用hash,寫一半感覺寫復雜了

class Solution {

public:

? ? vector<int> kWeakestRows(vector<vector<int>>& mat, int k) {

? ? ? ? int m = mat.size();

? ? ? ? int n = mat[0].size();

? ? ? ? vector<pair<int,int>>ans;

?

? ? ? ? //統計每一行的軍人數量以及索引

? ? ? ? for(int i = 0; i < m; i++){

? ? ? ? ? ? int sum = accumulate(mat[i].begin(), mat[i].end(), 0);

? ? ? ? ? ? ans.push_back({sum, i});

? ? ? ? }

?

? ? ? ? //按照軍人數量優先排序,其次是索引排序

? ? ? ? sort(ans.begin(), ans.end(), [](pair<int,int>&a, pair<int,int>&b){

? ? ? ? ? ? if(a.first == b.first){

? ? ? ? ? ? ? ? return a.second < b.second;

? ? ? ? ? ? }

? ? ? ? ? ? return a.first < b.first;

? ? ? ? });

? ? ? ? //統計k個索引

? ? ? ? vector<int>cnt;

? ? ? ? for(int i = 0; i < k; i++){

? ? ? ? ? ? cnt.push_back(ans[i].second);

? ? ? ? }

? ? ? ? return cnt;

? ? }

};

?

lc743.網絡延遲時間

dijkstra=bfs+貪心

?class Solution {
public:
int networkDelayTime(vector<vector<int>>& times, int n, int k) {
vector<vector<int>> g(n, vector<int>(n, INT_MAX / 2)); // 鄰接矩陣
for (auto& t : times) {
g[t[0] - 1][t[1] - 1] = t[2];
}

? ? ? ? vector<int> dis(n, INT_MAX / 2), done(n);
dis[k - 1] = 0;
while (true) {
int x = -1;
for (int i = 0; i < n; i++) {
if (!done[i] && (x < 0 || dis[i] < dis[x])) {
x = i;
}
}
if (x < 0) {
return ranges::max(dis);
}
if (dis[x] == INT_MAX / 2) { // 有節點無法到達
return -1;
}
done[x] = true; // 最短路長度已確定(無法變得更小)
for (int y = 0; y < n; y++) {
// 更新 x 的鄰居的最短路
dis[y] = min(dis[y], dis[x] + g[x][y]);
}
}
}
};

1353.優先隊列

priority_queue<int, vector<int>, greater<>> pq;

?class Solution {
public:
int maxEvents(vector<vector<int>>& events) {
int mx = 0;
for (auto& e : events) {
mx = max(mx, e[1]);
}

? ? ? ? // 按照開始時間分組
vector<vector<int>> groups(mx + 1);
for (auto& e : events) {
groups[e[0]].push_back(e[1]);
}

? ? ? ? int ans = 0;
priority_queue<int, vector<int>, greater<>> pq;
for (int i = 0; i <= mx; i++) {
// 刪除過期會議
while (!pq.empty() && pq.top() < i) {
pq.pop();
}
// 新增可以參加的會議
for (int end_day : groups[i]) {
pq.push(end_day);
}
// 參加一個結束時間最早的會議
if (!pq.empty()) {
ans++;
pq.pop();
}
}
return ans;
}
};


螺旋數組的遍歷

通過l t r b 控制遍歷螺旋

class Solution {
public:
vector<int> spiralArray(vector<vector<int>>& array)
{
if (array.empty()) return {};
int l = 0, r = array[0].size() - 1, t = 0, b = array.size() - 1;
vector<int> res;
while(true)
{
for (int i = l; i <= r; i++) res.push_back(array[t][i]); // left to right
if (++t > b) break;


for (int i = t; i <= b; i++) res.push_back(array[i][r]); // top to bottom
if (l > --r) break;


for (int i = r; i >= l; i--) res.push_back(array[b][i]); // right to left
? if (t > --b) break;


for (int i = b; i >= t; i--) res.push_back(array[i][l]); // bottom to top
if (++l > r) break;
}
return res;
}
};

?

hash沖突與解決

?

?

?rust

所有權,包管理,高性能,0開銷抽象,內存安全,無謂并發,主要[treat優于繼承,實現自定義]

?

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

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

相關文章

最新 HarmonyOS API 20 知識庫 重磅推出

最新 HarmonyOS API 20 知識庫 重磅推出 前言 最近整理下 華為開發者聯盟最新的 API 20的鴻蒙應用開發文檔&#xff0c;這次的API 20 相比較之前的文檔&#xff0c;要多了不少內容&#xff0c;目前整理后是9000千多篇&#xff0c;不容易呀。 如何使用 基于騰訊的知識庫工具 …

uniapp 監聽物理返回按鈕

import {onShow,onHide,onLoad,onReady,onBackPress} from "dcloudio/uni-app"onBackPress((e) > {showLog("返回按鈕觸發")if(e.frombackbutton){//開始干活}})參數說明屬性類型說明fromString觸發返回行為的來源&#xff1a;backbutton——左上角導航…

多線程(2)

多線程&#xff08;2&#xff09; &#x1f534;&#x1f7e0;&#x1f7e1;&#x1f7e2;&#x1f535;&#x1f7e3;&#x1f534;&#x1f534;&#x1f7e0;&#x1f7e1;&#x1f7e2;&#x1f535;&#x1f7e3;&#x1f534;&#x1f534;&#x1f7e0;&#x1f7e1;&am…

網關助力航天噴涂:Devicenet與Modbus TCP的“跨界對話“

在航空航天領域&#xff0c;飛機、航天器的制造過程有著極高的精度與安全性要求。以飛機、航天器表面噴涂作業為例&#xff0c;不僅要進行嚴格的防腐蝕處理&#xff0c;而且對表面光滑度要求極高&#xff0c;這直接關系到飛行器的空氣動力學性能和使用壽命。為確保作業安全與質…

從傳統項目管理到敏捷DevOps:如何轉向使用DevOps看板工具進行工作流管理

在DevOps實踐中&#xff0c;DevOps看板工具成為了開發與運維團隊之間高效協作的關鍵。隨著企業對敏捷開發和持續交付的需求日益增長&#xff0c;DevOps看板工具通過可視化的管理方法&#xff0c;幫助團隊在繁雜的任務中保持高效的工作節奏和清晰的進度跟蹤。 具體而言&#xff…

【leetcode100】下一個排列

1、題目描述 整數數組的一個 排列 就是將其所有成員以序列或線性順序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下這些都可以視作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整數數組的 下一個排列 是指其整數的下一個字典序更大的排列。更正…

Flink-Source算子狀態恢復分析

背景 修改 source 算子 kafka_old_topic 消費任務運行一段時間后&#xff0c;暫停狀態并保留。然后將 uid 和 topic 都改了&#xff0c;消費者 offset 會從 earliest 開始。 // before FlinkKafkaConsumer consumer KafkaConfig.getConsumer("kafka_old_topic");…

IDEA中application.yml配置文件不自動提示解決辦法

今天在自己的電腦上使用IDEA的時候&#xff0c;發現在application配置文件里面輸入配置項的時候沒有提示&#xff0c;網上找了一圈也沒解決&#xff0c;最后自己試出來了。 解決辦法&#xff1a; 鼠標移動到配置文件上&#xff0c;單擊右鍵-重寫文件類型、選擇YAML(捆綁)&#…

Vite 完整功能詳解與 Vue 項目實戰指南

Vite 完整功能詳解與 Vue 項目實戰指南 Vite 是下一代前端開發工具&#xff0c;由 Vue 作者尤雨溪開發&#xff0c;提供極速的開發體驗和高效的生產構建。以下是完整功能解析和實戰示例&#xff1a;一、Vite 核心功能亮點閃電般冷啟動 基于原生 ES 模塊&#xff08;ESM&#xf…

Vue 3 中使用路由參數跳轉時 watch 觸發重復請求問題詳解

&#x1f4d8;Vue 3 中使用路由參數跳轉時 watch 觸發重復請求問題詳解&#x1f516; 收藏 點贊 關注&#xff0c;掌握 Vue 3 路由參數監聽中的隱藏陷阱&#xff0c;避免詳情頁、嵌套路由頁誤觸發重復請求&#xff01;&#x1f9e9; 一、問題背景 在 Vue 3 項目中&#xff0c…

前端 項目更新通知 (plugin-web-update-notification)

項目版本更新迭代時&#xff0c;需提示用戶更新系統&#xff0c;不然早時間不更新對用戶體驗很不好&#xff0c;所以在每次部署后需要提示用戶&#xff0c;刷新靜態資源。推薦插件 plugin-web-update-notification .具體配置 vite.config.js文件中 import { webUpdateNotice …

【力扣(LeetCode)】數據挖掘面試題0002:當面對實時數據流時您如何設計和實現機器學習模型?

文章大綱一、實時數據處理&#xff1a;構建低延遲的數據管道1. 數據接入與緩沖2. 實時清洗與校驗3. 特征標準化與對齊二、模型設計&#xff1a;選擇適配實時場景的模型架構1. 模型選擇原則三、訓練與更新策略&#xff1a;離線與在線協同&#xff0c;應對概念漂移1. 離線-在線協…

TongWeb8.0.9.0.3部署后端應用,前端訪問后端報405(by sy+lqw)

問題描述&#xff1a; 客戶前端部署在nginx上&#xff0c;后端部署在tongweb8上&#xff08;相當于前后端分離&#xff09;&#xff0c;登錄的時候報錯&#xff0c;f12看network&#xff0c;狀態碼405&#xff0c;如下所示&#xff1a;看console&#xff0c;如下所示&#xff1…

mysql互為主從失效,重新同步

一、分別登錄服務器A和服務器B的mysqlmysql -u root -p 123456789二、分別查看數據庫狀態信息,下邊兩項參數有一項為NO就表示同步異常Slave_IO_Running:從服務器&#xff08;Slave&#xff09;中的 I/O 線程的運行狀態Slave_SQL_Running:從服務器上的 SQL 線程是否正在運行mysq…

板凳-------Mysql cookbook學習 (十一--------6)

https://blog.csdn.net/weixin_43236925/article/details/146382981 清晰易懂的 PHP 安裝與配置教程 12.6 查找每組行中含有最大或最小值的行 mysql> set max_price (select max(price) from painting); Query OK, 0 rows affected (0.01 sec)mysql> select artist.name…

ECS由淺入深第四節:ECS 與 Unity 傳統開發模式的結合?混合架構的藝術

ECS由淺入深第一節 ECS由淺入深第二節 ECS由淺入深第三節 ECS由淺入深第四節 ECS由淺入深第五節 盡管 ECS 帶來了顯著的性能和架構優勢&#xff0c;但在實際的 Unity 項目中&#xff0c;完全摒棄 GameObject 和 MonoBehaviour 往往是不現實的。Unity 引擎本身的大部分功能&…

Mac關閉觸控板

打開 “有鼠標或無線觸控板時忽略內建觸控板”選項即可 參考&#xff1a;Mac如何關閉觸控板防止誤觸&#xff1f;內置的設置就可以達成 - Mac天空

Python:Rich 終端富文本與界面樣式工具庫

??? 1、簡述 Rich 是一個強大的 Python 庫,用于在終端中呈現富文本和精美的格式,讓命令行界面(CLI)應用擁有現代、美觀的輸出效果。本文將深入介紹 Rich 的核心功能,并通過一系列實際示例展示其強大能力。 Rich 由 Will McGugan 開發,主要特點包括: 豐富的文本樣式:支…

深入解析享元模式:通過共享技術高效支持大量細粒度對象

深入解析享元模式&#xff1a;通過共享技術高效支持大量細粒度對象 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者。 ? 用代碼丈量世…

Docker高級管理

一、Docker 容器的網絡模式 當項目大規模使用 Docker 時&#xff0c;容器通信的問題也就產生了。要解決容器通信問題&#xff0c;必須先了解很多關于網絡的知識。Docker 的網絡模式非常豐富&#xff0c;可以滿足不同容器的通信要求&#xff0c;下表列出了這些網絡模式的主要信息…