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

网站建设元素如何叠加做网站要提供什么

网站建设元素如何叠加,做网站要提供什么,精品国内网站建设,门户网站开发分类目录 1.概念#xff1a;2.两数之和#xff08;1#xff09;.暴力破解法#xff08;2#xff09;.使用哈希表 3.区别 1.概念#xff1a; 非形式地说#xff0c;算法(algorithm)就是任何良定义的计算过程#xff0c;该过程取某个值或值的集合作为输入并产生某个值或值的集… 目录 1.概念2.两数之和1.暴力破解法2.使用哈希表 3.区别 1.概念 非形式地说算法(algorithm)就是任何良定义的计算过程该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。这样算法就是把输人转换成输出的计算步骤的一个序列。 我们也可以把算法看成是用于求解良说明的计算问题的工具。一般来说问题陈述说明了期望的输入/输出关系。算法则描述一个特定的计算过程来实现该输入/输出关系。 例如我们可能需要把一个数列排成非递减序。实际上这个问题经常出现并且为引人许多标准的设计技术和分析工具提供了足够的理由。下面是我们关于排序问题的形式定义。 输入;n个数的一个序列ala··a.。 输出:输人序列的一个排列a;a!·.·a,满足a1a2…an.例如给定输入序列《314159264158)排序算法将返回序列2631414158.59)作为输出。这样的输人序列称为排序问题的一个实例(instance)。一般来说问题实例由计算该问题解所必需的(满足问题陈述中强加的各种约束的)输入组成。 因为许多程序使用排序作为一个中间步所以排序是计算机科学中的一个基本操作。因此已有许多好的排序算法供我们任意使用。对于给定应用哪个算法最好依赖于以下因素:将被排序的项数、这些项已被稍微排序的程度、关于项值的可能限制、计算机的体系结构以及将使用的存储设备的种类(主存、磁盘或者磁带) 2.两数之和 给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。 例如 输入nums [2,7,11,15], target 9 输出[0,1] 解释因为 nums[0] nums[1] 9 返回 [0, 1] 。输入nums [3,2,4], target 6 输出[1,2]1.暴力破解法 针对这种问题我们可以使用双层for循环进行暴力破解示例代码如下 /*** param {number[]} nums* param {number} target* return {number[]}*/ var twoSum function(nums, target) {for (var i 0; i nums.length; i){for (var j i1 ; j nums.length ; j){if (nums[i] nums[j] target){return [i,j]}}}return {} };针对这段代码我们进行大概的分析这段代码的时间复杂度为 O(n^2) 其中 n 是数组 nums 的长度。这是因为代码使用了两个嵌套的循环来遍历数组。第一个循环的时间复杂度为 O(n)第二个循环的时间复杂度取决于当前索引 i平均为 O(n/2)。因此总体的时间复杂度为 O(n * n/2)即 O(n^2)。 代码的空间复杂度为 O(1)因为它只使用了常量级的额外空间来存储变量 i、j并没有使用额外的数据结构或数组。无论输入的规模如何增长代码所需的额外空间量是固定的。 2.使用哈希表 /*** param {number[]} nums* param {number} target* return {number[]}*/ var twoSum function(nums, target) {const map new Map(); // 创建哈希表存储元素及其索引for (let i 0; i nums.length; i) {const complement target - nums[i];if (map.has(complement)) {return [map.get(complement), i]; // 找到两数之和等于目标值的索引}map.set(nums[i], i); // 将元素及其索引添加到哈希表}return []; // 若不存在两数之和等于目标值返回空数组 };这段代码使用了哈希表来降低时间复杂度使得时间复杂度为 O(n)其中 n 是数组 nums 的长度。具体解析如下 代码首先创建了一个空的哈希表 map用于存储数组元素及其索引。 在遍历数组 nums 的过程中对于每个元素 nums[i]通过计算 target - nums[i] 得到与之配对的补数 complement。 然后检查哈希表 map 中是否存在 complement如果存在说明在当前索引 i 之前已经出现过补数 complement即找到了满足条件的两个数可以直接返回两个索引的数组。 如果不存在 complement则将当前元素 nums[i] 及其索引 i 添加到哈希表 map 中。 最终如果没有找到满足条件的两个数返回一个空数组。 由于只需要遍历一次数组且哈希表的查找操作的时间复杂度为 O(1)因此总体时间复杂度为 O(n)。 空间复杂度方面额外使用了一个哈希表 map其所需空间取决于输入数组的大小因此空间复杂度为 O(n)。 3.区别 第一段代码使用了双重循环来遍历数组查找满足条件的两个数。虽然代码简单但时间复杂度为 O(n^2)在面对大规模数据时效率较低。此代码适用于数据量较小的情况。 第二段代码使用了哈希表来优化查找过程将时间复杂度降至 O(n)。这在处理大规模数据时表现更优。它以空间复杂度为代价利用哈希表存储元素及其索引以更快地查找到满足条件的两个数。 因此如果输入规模较小时第一段代码可能更简单且适用。而在处理大规模数据时第二段代码更有效率。
http://www.zqtcl.cn/news/97647/

相关文章:

  • 戴尔网站建设的特点开创者wordpress素材
  • 网站假设公司排名不用囤货
  • 有关网站建设合同织梦珠宝网站模板
  • 月牙河做网站公司电商网站开发成本
  • iis7建立网站注册公司地址虚拟地址怎么申请
  • 响应式网站开发的想要去国外网站买东西怎么做
  • 网站建设开发有什么好处百度网盘0基础网站开发教程
  • 桂林整站优化青岛网站制作哪里有
  • 织梦cms手机网站源码天天想你视频免费观看西瓜
  • 怎么做网站弄网盟邯郸超速云_网站建设
  • 桂阳做网站的软件定制开发外包wordpress电子商务插件
  • 10有免费建网站那些公司做网站比较厉害
  • 网站关键词优化推广旅游类网站开发开题报告范文
  • 官方网站营销拟在建项目信息网官网
  • 沈阳做微信和网站的公司湛江网站建设公司哪家好
  • 网站 开发逻辑电话销售电销系统
  • 有哪些做兼职的设计网站有哪些工作可以用asp做哪些网站
  • 装修网站推广方案东莞网站建设0086
  • 知名营销网站开发高端网站建设如何收费
  • 佛山网站建设邓先生沈阳做网站找黑酷科技
  • 网站建设 排名下拉请教个人主页网站怎么做啊
  • 揭阳网站制作教程安阳seo公司
  • 网站运营管理教材wordpress 评论框插件
  • 免费做手机网站有哪些网页怎么制作链接
  • 浙江省建设工程质量协会网站wordpress只在首页设置关键词
  • 网站开发选题申请理由东莞网站建议
  • 阿里巴巴国际站运营培训商务网站的建设步骤
  • 有哪几个平台做网站专业的网站建设流程
  • 网站的回到顶部怎么做字体艺术设计在线生成
  • 物流营销型网站案例分析渭南专业做网站