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

咸阳市网站建设_网站建设公司_Photoshop_seo优化

犀牛云做网站怎么这么贵,怎么自己弄一个平台,鹏翔科技 网站建设,手机网站栏目结构图一、提出问题 给定一个整数数组 nums 和一个整数目标值 target#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按…一、提出问题 给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target  的那 两个 整数并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1 输入nums [2,7,11,15], target 9 输出[0,1] 解释因为 nums[0] nums[1] 9 返回 [0, 1] 。示例 2 输入nums [3,2,4], target 6 输出[1,2]示例 3 输入nums [3,3], target 6 输出[0,1] 提示 2 nums.length 104-109 nums[i] 109-109 target 109只会存在一个有效答案进阶你可以想出一个时间复杂度小于 O(n2) 的算法吗 二、解决问题 1、利用暴力枚举解决 1思路 这应该是最简单的思路即列出所有可能的组合然后判断这些组合的和是否符合条件。 2代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* twoSum(int* nums, int numsSize, int target, int* returnSize){for(int i0;inumsSize-2;i)for(int ji1;jnumsSize-1;j){if(nums[i]nums[j]target){int* retmalloc(sizeof(int)*2);ret[0]i;ret[1]j;*returnSize2;return ret;}}*returnSize0;return NULL;} 3复杂度 时间复杂度O(N^2)其中 N 是数组中的元素数量。最坏情况下数组中任意两个数都要被匹配一次。空间复杂度O(1)。2、利用哈希表解决 1思路 注意到方法一的时间复杂度较高的原因是对于数组中的一个数x寻找 target - x 的时间复杂度过高。因此我们需要一种更优秀的方法能够快速寻找数组中是否存在目标元素。如果存在我们需要找出它的索引。 使用哈希表可以将寻找 target - x 的时间复杂度降低到从 O(N) 降低到 O(1)。 我们创建一个哈希表对于每一个 x我们首先查询哈希表中是否存在 target - x然后将 x 插入到哈希表中即可保证不会让 x 和自己匹配。 2代码 struct hashTable {int key;int val;UT_hash_handle hh; };struct hashTable* hashtable;struct hashTable* find(int ikey) {struct hashTable* tmp;HASH_FIND_INT(hashtable, ikey, tmp);return tmp; }void insert(int ikey, int ival) {struct hashTable* it find(ikey);if (it NULL) {struct hashTable* tmp malloc(sizeof(struct hashTable));tmp-key ikey, tmp-val ival;HASH_ADD_INT(hashtable, key, tmp);}else {it-val ival;} }int* twoSum(int* nums, int numsSize, int target, int* returnSize) {hashtable NULL;for (int i 0; i numsSize; i) {struct hashTable* it find(target - nums[i]);if (it ! NULL) {int* ret malloc(sizeof(int) * 2);ret[0] it-val, ret[1] i;*returnSize 2;return ret;}insert(nums[i], i);}*returnSize 0;return NULL; } 3复杂度 时间复杂度O(N)其中 N 是数组中的元素数量。对于每一个元素 x我们可以 O(1)地寻找 target - x。空间复杂度O(N)其中 N是数组中的元素数量。主要为哈希表的开销。总结回顾 这是leetcode的第一道题首先我想到的就是双for循环解决由于比较熟悉C因此使用C语言来解答解答过程中对参数的含义稍微懵了一下不过看别人的答案明白了参数的含义以及应该如何返回。后来想到作为算法题应该可以更讲究技巧的果然高手们想到了哈希表。数据结构的知识已经还给老师了对于别人的代码里的哈希操作只是大概了解后续要恶补一下数据结构。另外对于时间复杂度、空间复杂度只有一个名词概念复杂度是怎么算怎么定义的呢也要认真学习一下。否则这些基本概念不熟悉就来刷题只能贻笑大方了。第一次刷题收获良多坚持每天至少刷一题吧不为别的就为了活动活动脑袋巩固一下语言知识。
http://www.ihoyoo.com/news/120587.html

相关文章:

  • 带后台的网站模板下载天津狐臭在哪里做津门网站I
  • 跟网站开发有关的内容有什么网站是layui做的
  • 网站管理助手4.0 破解阿里云智能logo设计网站
  • 国际网站建设的目的科技公司图片
  • 东莞销售网站建设网站建设与建设
  • 网站建设科邓州网络推广有效的方法
  • 网站新闻公告表怎么做公司官网首页设计
  • php彩票网站开发做外贸常用的网站有哪些
  • 济南快速网站制作公司怎样在百度能搜到自己的网站
  • 用什么软件来建网站推广专员是做什么的
  • 深圳门窗在哪里网站做推广网站建设的图片
  • 培训行业网站建设的重要性wordpress页面顶部菜单
  • 卓航网站开发微信运营服务商
  • 建立网站不公开好搜网
  • 林州网站建设服务江苏建设人才
  • 杭州网站建设哪家快速上线建设网站注意哪几点
  • 电子商务网站建设管理答案兰州需要做推广的公司
  • 法律行业网站建设饮食网站首页页面
  • 专门做字体设计的网站信阳网站建设制作公司
  • @安徽网站建设成都手机模板建站
  • 怎样用腾讯云做网站创业平台有哪些
  • 做网站用新域名还是老域名wordpress可以建官网嘛
  • p2p倒闭 网站开发百度世界500强排名
  • 关键词推广技巧浙江网站建设方案优化
  • 上海十大网站建晋江网络推广公司
  • 网站建设模块需求重庆网站建设软件
  • 广州天河区网站建设手机软件开发工程师
  • PHP长沙WordPress企业免费网站优化服务
  • 网站建设和网页设计视频教程微博搜索引擎优化
  • 睢县做网站哪家好wordpress极致性能