leetcode 454. 四數相加 II(哈希表)

給定四個包含整數的數組列表 A , B , C , D ,計算有多少個元組 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

為了使問題簡單化,所有的 A, B, C, D 具有相同的長度 N,且 0 ≤ N ≤ 500 。所有整數的范圍在 -228 到 228 - 1 之間,最終結果不會超過 231 - 1 。

例如:

輸入:
A = [ 1, 2]
B = [-2,-1]
C = [-1, 2]
D = [ 0, 2]

輸出:
2

解釋:
兩個元組如下:

  1. (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0
  2. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0

代碼

class Solution {public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {Map<Integer,Integer> map=new HashMap<>();int res=0;for(int i=0;i<A.length;i++)for(int j=0;j<B.length;j++)//產生A,B數組相加 所有可能的和,并記錄出現次數map.put(A[i]+B[j],map.getOrDefault(A[i]+B[j],0)+1);for(int i=0;i<C.length;i++)//產生c,d數組相加 所有可能的和,并檢查map中是否有相加為0的數字for(int j=0;j<D.length;j++)if(map.containsKey(-C[i]-D[j]))res+=map.get(-C[i]-D[j]);return res;}
}

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

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

相關文章

“換標”Intel的窮則思變

成語有云“窮則思變”&#xff0c;用這個詞來形容早先的Intel換標也最恰當不過。當然這里“窮”&#xff0c;不是說Intel很貧窮&#xff0c;而是說Intel在自己的產業到了盡頭。Intel推產品概念的水平是一流的&#xff0c;雖然某些概念事后被認為是錯誤的&#xff08;如&#xf…

mysql開發中遇到的坑_mysql優化過程中遇見的坑(mysql優化問題特別注意)

單條查詢最后添加 LIMIT 1&#xff0c;停止全表掃描。對于char(4) 或者vachar(4)&#xff0c;無論是中文還是英文都是存儲四個字符&#xff0c;注意是字符而不是字節。如果一個字段未int類型&#xff0c;此類型只有0、1兩個狀態&#xff0c;需要為此建立索引嗎&#xff1f;過度…

初級開發人員的缺點_在您作為初級開發人員的第一年獲得此建議

初級開發人員的缺點Are you a junior developer embarking on your software development career?您是從事軟件開發事業的初級開發人員嗎&#xff1f; Or a recent computer science graduate who has recently started a new job?還是最近剛開始從事新工作的計算機科學專業…

Spark日志分析

根據tomcat日志計算url訪問了情況&#xff0c;具體的url如下&#xff0c; 要求&#xff1a;區別統計GET和POST URL訪問量 結果為&#xff1a;訪問方式、URL、訪問量 輸入文件&#xff1a; 196.168.2.1 - - [03/Jul/2014:23:36:38 0800] "GET /course/detail/3.htm HTTP/1.…

進程、線程和協程的區別

首先&#xff0c;給出“進程、線程和協程”的特點&#xff1a; 進程&#xff1a;擁有自己獨立的堆和棧&#xff0c;既不共享堆&#xff0c;也不共享棧&#xff0c;進程由操作系統調度&#xff1b;線程&#xff1a;擁有自己獨立的棧和共享的堆&#xff0c;共享堆&#xff0c;不共…

leetcode 493. 翻轉對(分治算法)

給定一個數組 nums &#xff0c;如果 i < j 且 nums[i] > 2*nums[j] 我們就將 (i, j) 稱作一個重要翻轉對。 你需要返回給定數組中的重要翻轉對的數量。 示例 1: 輸入: [1,3,2,3,1] 輸出: 2 代碼 class Solution {public int reversePairs(int[] nums) {return getR…

使用brew安裝軟件

brew 又叫Homebrew&#xff0c;是Mac OSX上的軟件包管理工具&#xff0c;能在Mac中方便的安裝軟件或者卸載軟件&#xff0c; 只需要一個命令&#xff0c; 非常方便 brew類似ubuntu系統下的apt-get的功能 閱讀目錄 安裝brew 使用brew安裝軟件 使用brew卸載軟件 使用brew查詢軟…

mysql 繞過select報錯_MySQL注射繞過技巧(三)

在測試一次注入的時候發現過濾了逗號 所以找到這個思路第一次遇到的時候是看key哥挖洞 遇到后就想記錄下來正文過濾了逗號 利用join來逐步查詢select*from(select 1)a join (select 2)b join (select 3)c;例如下圖逐步查詢user()user() basediruser() basedir version()也可以…

深入理解javascript

深入理解JavaScript系列&#xff08;1&#xff09;&#xff1a;編寫高質量JavaScript代碼的基本要點 深入理解JavaScript系列&#xff08;2&#xff09;&#xff1a;揭秘命名函數表達式 深入理解JavaScript系列&#xff08;3&#xff09;&#xff1a;全面解析Module模式 深入理…

spark 并行處理_如何使用Spark集群并行處理大數據

spark 并行處理by Hari Santanam通過Hari Santanam 如何使用Spark集群并行處理大數據 (How to use Spark clusters for parallel processing Big Data) 將Apache Spark的彈性分布式數據集(RDD)與Databricks一起使用 (Use Apache Spark’s Resilient Distributed Dataset (RDD)…

django前后端分離部署

部署靜態文件&#xff1a; 靜態文件有兩種方式1&#xff1a;通過django路由訪問2&#xff1a;通過nginx直接訪問 方式1&#xff1a; 需要在根目錄的URL文件中增加&#xff0c;作為入口 url(r^$, TemplateView.as_view(template_name"index.html")), 在setting中更改靜…

Citrix、Microsoft、VMware虛擬桌面之網頁接口登錄對比

軟件環境 Citrix Xendesktop 5.6 Microsoft Windows Server 2008 R2 Hyper-v VMware View client 4.6 首先看citrix的&#xff0c;很早之前Citrix就推出了網頁的虛擬桌面和應用程序&#xff0c;默認是單點登錄獲取桌面 下面是微軟的&#xff0c;和citrix很類似&#xff0c; 據我…

leetcode 976. 三角形的最大周長

給定由一些正數&#xff08;代表長度&#xff09;組成的數組 A&#xff0c;返回由其中三個長度組成的、面積不為零的三角形的最大周長。 如果不能形成任何面積不為零的三角形&#xff0c;返回 0。 示例 1&#xff1a; 輸入&#xff1a;[2,1,2] 輸出&#xff1a;5 示例 2&…

recyclerview 加載fragment_恢復 RecyclerView 的滾動位置

您可能在開發過程中遇到過這種情況&#xff0c;在 Activity/Fragment 被重新創建后&#xff0c;RecyclerView 丟失了它之前保有的滾動位置信息。通常這種情況發生的原因是由于異步加載 Adapter 數據&#xff0c;且數據在 RecyclerView 需要進行布局的時候尚未加載完成&#xff…

4.6.2 軟件測試的步驟

系統測試是可有可無的。因為系統測試是和環境結合在一起。系統測試應該是在系統設計或者是需求分析階段的前一步來完成的。 單元測試它的測試計劃是在詳細設計階段完成。所以說單元測試的計劃是在詳細設計階段來完成的。 模塊接口的測試它保證了測試模塊的數據流可以正確地流入…

nodejs調試ndb_如何開始使用NDB調試NodeJS應用程序

nodejs調試ndbNodeJs was released almost 9 years ago. The default debugging process of NodeJs (read Node.js) is quite clumsy. You are likely already aware of the need to add --inspect to the node script with node inspector. It is also dependent on Chrome. T…

初學必讀:61條面向對象設計的經驗原則

(1)所有數據都應該隱藏在所在的類的內部。(2)類的使用者必須依賴類的共有接口&#xff0c;但類不能依賴它的使用者。(3)盡量減少類的協議中的消息。(4)實現所有類都理解的最基本公有接口[例如&#xff0c;拷貝操作(深拷貝和淺拷貝)、相等性判斷、正確輸出內容、從ASCII描述解析…

棧,遞歸

棧的基本操作注意&#xff1a;是從后往前連接的 1 #include <stdio.h>2 #include <Windows.h>3 typedef struct sStack4 {5 int num;6 struct sStack* pnext;7 }Stack;8 void push(Stack **pStack,int num);9 int pop(Stack **pStack); 10 BOOL isEmpty(St…

mysql集群多管理節點_項目進階 之 集群環境搭建(三)多管理節點MySQL集群

多管理節點MySQL的配置很easy&#xff0c;僅須要改動之前的博文中提高的三種節點的三個地方。1)改動管理節點配置打開管理節點C:\mysql\bin下的config.ini文件&#xff0c;將當中ndb_mgmd的相關配置改動為例如以下內容&#xff1a;[ndb_mgmd]# Management process options:# Ho…

leetcode 767. 重構字符串(貪心算法)

給定一個字符串S&#xff0c;檢查是否能重新排布其中的字母&#xff0c;使得兩相鄰的字符不同。 若可行&#xff0c;輸出任意可行的結果。若不可行&#xff0c;返回空字符串。 示例 1: 輸入: S “aab” 輸出: “aba” 代碼 class Solution {public String reorganizeStri…