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

原平的旅游网站怎么做的杭州企业seo

原平的旅游网站怎么做的,杭州企业seo,网站排名做不上去,世纪兴seo公司目录 10.4 哈希优化策略 10.4.1 线性查找:以时间换空间 10.4.2 哈希查找:以空间换时间 10.4 哈希优化策略 在算法题中,我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。我们借助一个算法题来加深理解。 Question 给…

目录

10.4   哈希优化策略

10.4.1   线性查找:以时间换空间

10.4.2   哈希查找:以空间换时间


10.4   哈希优化策略

在算法题中,我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。我们借助一个算法题来加深理解。

Question

给定一个整数数组 nums 和一个目标元素 target ,请在数组中搜索“和”为 target 的两个元素,并返回它们的数组索引。返回任意一个解即可。

10.4.1   线性查找:以时间换空间

考虑直接遍历所有可能的组合。如图 10-9 所示,我们开启一个两层循环,在每轮中判断两个整数的和是否为 target ,若是,则返回它们的索引。

线性查找求解两数之和

图 10-9   线性查找求解两数之和

代码如下所示:

two_sum.c

/* 方法一:暴力枚举 */
int *twoSumBruteForce(int *nums, int numsSize, int target, int *returnSize) {for (int i = 0; i < numsSize; ++i) {for (int j = i + 1; j < numsSize; ++j) {if (nums[i] + nums[j] == target) {int *res = malloc(sizeof(int) * 2);res[0] = i, res[1] = j;*returnSize = 2;return res;}}}*returnSize = 0;return NULL;
}

此方法的时间复杂度为 𝑂(𝑛2) ,空间复杂度为 𝑂(1) ,在大数据量下非常耗时。

10.4.2   哈希查找:以空间换时间

考虑借助一个哈希表,键值对分别为数组元素和元素索引。循环遍历数组,每轮执行图 10-10 所示的步骤。

  1. 判断数字 target - nums[i] 是否在哈希表中,若是,则直接返回这两个元素的索引。
  2. 将键值对 nums[i] 和索引 i 添加进哈希表。

<1><2><3>

two_sum_hashtable_step3

图 10-10   辅助哈希表求解两数之和

实现代码如下所示,仅需单层循环即可:

two_sum.c

/* 哈希表 */
typedef struct {int key;int val;UT_hash_handle hh; // 基于 uthash.h 实现
} HashTable;/* 哈希表查询 */
HashTable *find(HashTable *h, int key) {HashTable *tmp;HASH_FIND_INT(h, &key, tmp);return tmp;
}/* 哈希表元素插入 */
void insert(HashTable *h, int key, int val) {HashTable *t = find(h, key);if (t == NULL) {HashTable *tmp = malloc(sizeof(HashTable));tmp->key = key, tmp->val = val;HASH_ADD_INT(h, key, tmp);} else {t->val = val;}
}/* 方法二:辅助哈希表 */
int *twoSumHashTable(int *nums, int numsSize, int target, int *returnSize) {HashTable *hashtable = NULL;for (int i = 0; i < numsSize; i++) {HashTable *t = find(hashtable, target - nums[i]);if (t != NULL) {int *res = malloc(sizeof(int) * 2);res[0] = t->val, res[1] = i;*returnSize = 2;return res;}insert(hashtable, nums[i], i);}*returnSize = 0;return NULL;
}

此方法通过哈希查找将时间复杂度从 𝑂(𝑛2) 降至 𝑂(𝑛) ,大幅提升运行效率。

由于需要维护一个额外的哈希表,因此空间复杂度为 𝑂(𝑛) 。尽管如此,该方法的整体时空效率更为均衡,因此它是本题的最优解法

http://www.15wanjia.com/news/181688.html

相关文章:

  • wap医院网站模板 for dedecms v1.0怎样网站制作设计
  • 深圳做网站推广的公司如何做自己网站的seo
  • 网站在线配色丰台做网站
  • 企业建立一个网站步骤wordpress 如何更新
  • 网站开发用什么架构网站建站需要什么
  • 哪家建设网站产品推广网站
  • 企业网站开发综合实训网站备案审核通过后
  • 有做国际网站生意吗wordpress和e
  • 色91Av做爰网站加强医院微信和网站建设
  • 做英文网站的标准字体公司logo注册多少钱
  • 怎么找做网站平台公司极速网站制作
  • 怎样用ps做电子商务网站套模板网站价格
  • 在服务器网站上做跳转页面wordpress 同步
  • 网站设计细节有经验的手机网站建设
  • 做外贸网站怎么样wordpress自动识别网页
  • 廊坊 网站发布网站后不可能存在的文件夹是
  • 青岛经纬建设工程有限公司网站深圳精品网站建设
  • 怎样用织梦做淘宝客网站绍兴公司网站建设 中企动力绍兴
  • 东营网站建设那家好wordpress中文博客主题
  • 网站建设的栏目规划外贸自建站可以自己做网站吗
  • 如何做网站静态页面微信电商怎样开店
  • 必应网站收录提交入口推荐营销型网站建设
  • 青岛网站排名公司长沙招聘网最新招聘
  • 新手可以自己建网站吗物流公司怎么做网站
  • 免费建立网站论坛最近2018中文字幕免费看2019
  • 建网站挣钱吗显示海外地址用什么地图?
  • 凡科建站和华为云哪个好手机网站设计占工程比重
  • ps网站首页怎么设计wordpress添加代码运行
  • 公司网站建设推合同网站平台建设属于什么采购
  • 网站vi设计公司一键制作网站软件