mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Update 0454.四数相加II.md,规范代码格式
This commit is contained in:
@ -418,20 +418,19 @@ public int FourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
|
|||||||
// 哈希表大小
|
// 哈希表大小
|
||||||
const int HASH_SIZE = 101;
|
const int HASH_SIZE = 101;
|
||||||
|
|
||||||
typedef struct node
|
typedef struct node {
|
||||||
{
|
|
||||||
int val;
|
int val;
|
||||||
int count;
|
int count;
|
||||||
struct node *next;
|
struct node *next;
|
||||||
}node, *HashMap;
|
} node, *HashMap;
|
||||||
|
|
||||||
// 哈希表插入
|
// 哈希表插入
|
||||||
void hash_insert(HashMap hashmap[], int val){
|
void hash_insert(HashMap hashmap[], int val) {
|
||||||
int idx = val < 0 ? (-val) % HASH_SIZE : val % HASH_SIZE, count = 0;
|
int idx = val < 0 ? (-val) % HASH_SIZE : val % HASH_SIZE, count = 0;
|
||||||
node *p = hashmap[idx];
|
node *p = hashmap[idx];
|
||||||
while (p->next != NULL) {
|
while (p->next != NULL) {
|
||||||
p = p->next;
|
p = p->next;
|
||||||
if (p->val == val){
|
if (p->val == val) {
|
||||||
(p->count)++;
|
(p->count)++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -445,10 +444,10 @@ void hash_insert(HashMap hashmap[], int val){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 哈希表查找
|
// 哈希表查找
|
||||||
int hash_search(HashMap hashmap[], int val){
|
int hash_search(HashMap hashmap[], int val) {
|
||||||
int idx = val < 0 ? (-val) % HASH_SIZE : val % HASH_SIZE;
|
int idx = val < 0 ? (-val) % HASH_SIZE : val % HASH_SIZE;
|
||||||
node *p = hashmap[idx];
|
node *p = hashmap[idx];
|
||||||
while (p->next != NULL){
|
while (p->next != NULL) {
|
||||||
p = p->next;
|
p = p->next;
|
||||||
if (p->val == val) return p->count;
|
if (p->val == val) return p->count;
|
||||||
}
|
}
|
||||||
@ -458,23 +457,23 @@ int hash_search(HashMap hashmap[], int val){
|
|||||||
int fourSumCount(int* nums1, int nums1Size, int* nums2, int nums2Size, int* nums3, int nums3Size, int* nums4, int nums4Size){
|
int fourSumCount(int* nums1, int nums1Size, int* nums2, int nums2Size, int* nums3, int nums3Size, int* nums4, int nums4Size){
|
||||||
// 初始化哈希表
|
// 初始化哈希表
|
||||||
HashMap hashmap[HASH_SIZE];
|
HashMap hashmap[HASH_SIZE];
|
||||||
for (int i = 0; i < HASH_SIZE; i++){
|
for (int i = 0; i < HASH_SIZE; i++) {
|
||||||
hashmap[i] = malloc(sizeof(node));
|
hashmap[i] = malloc(sizeof(node));
|
||||||
hashmap[i]->next = NULL;
|
hashmap[i]->next = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 统计两个数组元素之和的负值和出现的次数,放到哈希表中
|
// 统计两个数组元素之和的负值和出现的次数,放到哈希表中
|
||||||
int count = 0, num;
|
int count = 0, num;
|
||||||
for (int i=0; i<nums1Size; i++){
|
for (int i = 0; i < nums1Size; i++) {
|
||||||
for(int j=0; j<nums2Size; j++){
|
for(int j = 0; j < nums2Size; j++) {
|
||||||
num = - nums1[i] - nums2[j];
|
num = - nums1[i] - nums2[j];
|
||||||
hash_insert(hashmap, num);
|
hash_insert(hashmap, num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 统计另外两个数组元素之和,查找哈希表中对应元素的出现次数,加入总次数
|
// 统计另外两个数组元素之和,查找哈希表中对应元素的出现次数,加入总次数
|
||||||
for (int i=0; i<nums3Size; i++){
|
for (int i = 0; i < nums3Size; i++) {
|
||||||
for(int j=0; j<nums4Size; j++){
|
for(int j = 0; j < nums4Size; j++) {
|
||||||
num = nums3[i] + nums4[j];
|
num = nums3[i] + nums4[j];
|
||||||
count += hash_search(hashmap, num);
|
count += hash_search(hashmap, num);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user