当前位置: 首页 > news >正文

C语言 | Leetcode C语言题解之第446题等差数列划分II-子序列

题目:

题解:

#define HASH_FIND_LONG(head, findint, out) HASH_FIND(hh, head, findint, sizeof(long), out)
#define HASH_ADD_LONG(head, intfield, add) HASH_ADD(hh, head, intfield, sizeof(long), add)struct HashTable {long key;int val;UT_hash_handle hh;
};int query(struct HashTable** HashTable, long ikey) {struct HashTable* tmp;HASH_FIND_LONG(*HashTable, &ikey, tmp);return tmp == NULL ? 0 : tmp->val;
}void add(struct HashTable** HashTable, long ikey, int ival) {struct HashTable* tmp;HASH_FIND_LONG(*HashTable, &ikey, tmp);if (tmp == NULL) {tmp = malloc(sizeof(struct HashTable));tmp->key = ikey, tmp->val = ival;HASH_ADD_LONG(*HashTable, key, tmp);} else {tmp->val += ival;}
}int numberOfArithmeticSlices(int* nums, int numsSize) {int ans = 0;struct HashTable* hashTable[numsSize];memset(hashTable, 0, sizeof(hashTable));for (int i = 0; i < numsSize; ++i) {for (int j = 0; j < i; ++j) {long long d = 1LL * nums[i] - nums[j];int cnt = query(&hashTable[j], d);ans += cnt;add(&hashTable[i], d, cnt + 1);}}return ans;
}

http://www.mrgr.cn/news/39487.html

相关文章:

  • 数据结构串的kmp相关(求next和nextval)
  • Golang | Leetcode Golang题解之第446题等差数列划分II-子序列
  • 【分布式微服务云原生】探索RPC:远程过程调用的奥秘与技术实现
  • YUM 源与 APT 源的详解及使用指南
  • 信息安全数学基础(21)高次同余式的解数及解法
  • 多线程(一):线程的基本特点线程安全问题ThreadRunnable
  • 超大规模钢筋计数数据集,共23400组图像,多视角,多角度,多场景,采用voc方式标注 智慧工地资产盘点
  • 程序员如何提升并保持核心竞争力?——深入钻研、广泛学习与软技能的培养
  • Spring+Mybatis IOC + AOP + 开启事务 模板
  • C++ | Leetcode C++题解之第447题回旋镖的数量
  • XSS | 存储型 XSS 攻击
  • Fingerprint.js:精准用户识别的浏览器指纹技术
  • STM32--GPIO点亮LED灯(手把手,超详细)
  • xmind怎么把左边的主题换到右边
  • 【前端开发入门】html快速入门
  • Linux: network: sysctl: tcp_mem
  • Java | Leetcode Java题解之第446题等差数列划分II-子序列
  • [题解] Codeforces Round 976 (Div. 2) A ~ E
  • 基于SSM+小程序的流浪动物领养管理系统(救助1)(源码+sql脚本+视频导入教程+文档)
  • Python:Pip包的安装与原理(Windows系统)