代碼隨想錄第7天 454 、 383 、15、18

代碼隨想錄第7天

454. 四數相加 II

思路就是先統計nums1和num2各個元素之和出現的次數,然后遍歷num3和nums4各個元素之和,看其相反數是否在map中,若在加上出現次數

class Solution {
public:
int fourSumCount(vector<int> &nums1, vector<int> &nums2, vector<int> &nums3, vector<int> &nums4) {unordered_map<int, int> map;for (auto &ele1 : nums1) {for (auto &ele2 : nums2) {map[ele1 + ele2]++;}}int res = 0;for (auto &ele1 : nums3) {for (auto &ele2 : nums4) {auto it = map.find(-(ele1 + ele2));if (it != map.end()) {res += it->second;}}}return res;
}
};

383. 贖金信

感覺和前面某題很類似,用map和數組都可以實現

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {vector<int> arr(26, 0);for (int i = 0; i < magazine.size(); i++) {arr[magazine[i] - 'a']++;}for (int i = 0; i < ransomNote.size(); i++) {arr[ransomNote[i] - 'a']--;if (arr[ransomNote[i] - 'a'] < 0) {return false;}}return true;
}
};class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {unordered_map<char, int> map;for (int i = 0; i < magazine.size(); i++) {map[magazine[i]]++;}for (int i = 0; i < ransomNote.size(); i++) {map[ransomNote[i]]--;if (map[ransomNote[i]] < 0) return false;}return true;
}
};

15. 三數之和

卡哥的視頻講得很清楚

class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> res;sort(nums.begin(), nums.end());for (int i = 0; i < nums.size(); i++) {if (nums[i] > 0) continue;if (i > 0 && nums[i] == nums[i - 1]) continue;int left = i + 1;int right = nums.size() - 1;while (left < right) {int sum = nums[i] + nums[left] + nums[right];if (sum < 0) {left++;} else if (sum > 0) {right--;} else {res.push_back({nums[i], nums[left], nums[right]});while (left < right && nums[left] == nums[left + 1]) left++;while (left < right && nums[right] == nums[right - 1]) right--;left++;right--;}}}return res;
}
};

18. 四數之和

在三數之和外面套一層for

需要注意的點是這里的target可以是負數所以在第一層剪枝除了要>target 還要>=0

其次會發現和越界[0,0,0,1000000000,1000000000,1000000000,1000000000],1000000000 + 1000000000 + 1000000000就會越界所以我才用了long long類型為和,或者只加前面三個,判斷target-nums[right]

class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {sort(nums.begin(), nums.end());vector<vector<int>> res;for (int i = 0; i < nums.size(); i++) {if (nums[i] > target && nums[i] >= 0) continue;if (i > 0 && nums[i] == nums[i - 1]) continue;for (int j = i + 1; j < nums.size(); j++) {if (nums[i] + nums[j] > target && nums[i] + nums[j] >= 0) continue;if (j > i + 1 && nums[j] == nums[j - 1]) continue;int left = j + 1;int right = nums.size() - 1;while (left < right) {long long sum = (long long)0 + nums[i] + nums[j] + nums[left] + nums[right];if (sum < target) {left++;} else if (sum > target) {right--;} else {res.push_back({nums[i], nums[j], nums[left], nums[right]});while (left < right && nums[left] == nums[left + 1]) left++;while (left < right && nums[right] == nums[right - 1]) right--;left++;right--;}}}}return res;
}
};

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

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

相關文章

nginx.conf配置文件

1、全局模塊 worker_processes 1; 工作進程數&#xff0c;一般設置成服務器內核數的2倍&#xff08;一般不超過8個&#xff0c;超過8個反而會降低性能&#xff0c;一般是4個&#xff0c;1-2個也可以&#xff09; 處理進程的過程必然涉及配置文件和展示頁面&#xff0c;也就是…

高斯過程的定義

高斯過程 1. 高斯過程的定義2. 協方差矩陣的構建3. 協方差矩陣的性質3.1. 計算挑戰3.2. 解決方法 1. 高斯過程的定義 高斯過程可以看作是對函數的分布&#xff0c;它假定任何有限數量的函數值的集合服從一個多元高斯分布。給定輸入數據點集合 { x 1 , x 2 , … , x n } \left…

2024.7.9作業

1、提示并輸入一個字符串&#xff0c;統計該字符串中字母、數字、空格以及其他字符的個數 #include <stdio.h> #include <string.h> int main(int argc,const char *argv[]) { char arr[30]{0}; int zm0,kg0,sz0,qt0; printf("請輸入字符串&…

OpenStack是一個開源的云計算平臺

OpenStack是一個開源的云計算平臺&#xff0c;由多個組件組成&#xff0c;這些組件協同工作&#xff0c;提供包括計算、網絡、存儲和身份服務在內的基礎設施即服務(IaaS)。OpenStack最初由NASA和Rackspace合作開發&#xff0c;目的是創建一個開放源代碼的云操作系統。 OpenSta…

智慧光伏一站式解決方案

光伏電站智慧化管理平臺&#xff0c;將現代先進的數字信息技術、通信技術、互聯網技術、云計算技術、大數據挖掘技術與光伏技術高度融合而形成。可以滿足光伏企業對電站的高發電量、低初始投資、低運維成本等需求&#xff0c;從開發到運維的25年生命周期內&#xff0c;實現高收…

使用clion刷leetcode

如何優雅的使用clion刷leetcode 安裝插件&#xff1a;LeetCode Editor) 插件配置&#xff1a; 這樣我們每打開一個項目&#xff0c;就會創建類似的文件 我們的項目結構&#xff1a; 我們在題解文件中導入頭文件myHeader.h并將新建的文件添加到cmakelists.txt文件&#xff0c;…

2024前端面試真題【JS篇】

DOM DOM&#xff1a;文本對象模型&#xff0c;是HTML和XML文檔的編程接口。提供了對文檔的結構化的表述&#xff0c;并定義可一種方式可以使從程序中對該結構進行訪問&#xff0c;從而改變文檔的結構、樣式和內容。 DOM操作 創建節點&#xff1a;document.createElement()、do…

hnust 1965: 深度優先搜索

hnust 1965: 深度優先搜索 題目描述 輸入一個圖&#xff0c;用鄰接矩陣存儲&#xff08;實際上也可以選擇鄰接表&#xff09;&#xff0c;并實現DFSTraverse操作。 拷貝前面已經實現的代碼&#xff0c;主函數必須如下&#xff0c;完成剩下的部分。 int main() { Graph g; Cre…

RTOS系統 -- 調試大法之FreeRTOS在M4上實現coredump功能

FreeRTOS內核崩潰&#xff08;coredump&#xff09;及異常打印技術 技術背景 在嵌入式系統中&#xff0c;FreeRTOS是一款廣泛使用的實時操作系統。FreeRTOS本身并不包含默認的coredump機制&#xff0c;但我們可以通過自定義異常處理函數來實現異常打印和coredump功能。通過捕…

了解PPO算法(Proximal Policy Optimization)

Proximal Policy Optimization (PPO) 是一種強化學習算法&#xff0c;由 OpenAI 提出&#xff0c;旨在解決傳統策略梯度方法中策略更新過大的問題。PPO 通過引入限制策略更新范圍的機制&#xff0c;在保證收斂性的同時提高了算法的穩定性和效率。 PPO算法原理 PPO 算法的核心…

Oracle數據庫自帶的內置表和視圖、常用內部視圖

文章目錄 一.Oracle數據庫自帶的內置表和視圖1.dba_開頭表2.user_開頭表3.v$開頭表4.all_開頭表5.session_開頭表6.index_開頭表 三.按組分的幾組重要的性能視圖1.System的over view2.某個session的當前情況3.SQL的情況4.Latch/lock/ENQUEUE5.IO方面的 分類類別關系群集、表、視…

【docker 把系統盤空間耗沒了!】windows11 更改 ubuntu 子系統存儲位置

系統&#xff1a;win11 ubuntu 22 子系統&#xff0c;docker 出現問題&#xff1a;系統盤突然沒空間了&#xff0c;一片紅 經過排查&#xff0c;發現 AppData\Local\packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\ 這個文件夾竟然有 90GB 下面提供解決辦法 步…

Spring-AOP(二)

作者&#xff1a;月下山川 公眾號&#xff1a;月下山川 1、什么是AOP AOP&#xff08;Aspect Oriented Programming&#xff09;是一種設計思想&#xff0c;是軟件設計領域中的面向切面編程&#xff0c;它是面向對象編程的一種補充和完善&#xff0c;它以通過預編譯方式和運行期…

【課程總結】Day13(下):人臉識別和MTCNN模型

前言 在上一章課程【課程總結】Day13(上):使用YOLO進行目標檢測,我們了解到目標檢測有兩種策略,一種是以YOLO為代表的策略:特征提取→切片→分類回歸;另外一種是以MTCNN為代表的策略:先圖像切片→特征提取→分類和回歸。因此,本章內容將深入了解MTCNN模型,包括:MTC…

CountDownLatch 是 Java 中的一個同步輔助工具類

下面是一個使用 CountDownLatch 的案例分析&#xff0c;我們將通過一個簡單的示例來展示如何使用 CountDownLatch 來同步多個線程的操作。 ### 場景描述 假設我們有一個任務&#xff0c;需要從多個數據源&#xff08;比如多個數據庫表或文件&#xff09;中讀取數據&#xff0c…

使用jdk11運行javafx程序和jdk11打包jre包含javafx模塊

我們都知道jdk11是移除了javafx的,如果需要使用javafx,需要單獨下載。 這就導致我們使用javafx開發的桌面程序使用jdk11時提示缺少javafx依賴。但這是可以通過下面的方法解決。 一,使用jdk11運行javafx程序 我們可以通過設置vmOptions來使用jdk11運行javafx程序 1,添加j…

【RAG KG】GraphRAG開源:查詢聚焦摘要的圖RAG方法

前言 傳統的 RAG 方法在處理針對整個文本語料庫的全局性問題時存在不足&#xff0c;例如查詢&#xff1a;“數據中的前 5 個主題是什么&#xff1f;” 對于此類問題&#xff0c;是因為這類問題本質上是查詢聚焦的摘要&#xff08;Query-Focused Summarization, QFS&#xff09…

嵌入式單片機,兩者有什么關聯又有什么區別?

在開始前剛好我有一些資料&#xff0c;是我根據網友給的問題精心整理了一份「嵌入式的資料從專業入門到高級教程」&#xff0c; 點個關注在評論區回復“666”之后私信回復“666”&#xff0c;全部無償共享給大家&#xff01;&#xff01;&#xff01;使用單片機是嵌入式系統的…

iOS 國際化語言第一語言不支持時候默認語言強轉英文

對bundle擴展 直接貼代碼 .h文件 // // NSBundleKdLocalBundle.h // QooCam // // Created by bob bob on 2023/9/8.//#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGINinterface NSBundle (KdLocalBundle)end interface KdLocalBundle:NSBundleend interf…

CurrentHashMap巧妙利用位運算獲取數組指定下標元素

先來了解一下數組對象在堆中的存儲形式【數組長度&#xff0c;數組元素類型信息等】 【存放元素對象的空間】 Ma 基礎信息實例數據內存填充Mark Word,ClassPointer,數組長度第一個元素第二個元素固定的填充內容 所以我們想要獲取某個下標的元素首先要獲取這個元素的起始位置…