摘要:一两遍循环,暴力破解代码如下时间复杂度提交,结果执行时间。。。。。可以说龟速了二两遍这个方法是看了的解决方案,但它是代码,开始不知道,其实的数组就是实现的,后面看了下面两片文章的介绍,才理解,解决的。
1. Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].一、两遍循环,暴力破解
代码如下
function twoSum($nums, $target) { for($i=0;$i时间复杂度 O(n^2 )
提交,结果执行时间1968 ms。。。。。
二、两遍hash
可以说龟速了这个方法是看了leetcode的解决方案,但它是java代码,开始不知道,其实php的数组就是hash实现的,后面看了下面两片文章的介绍,才理解,解决的。
https://www.cnblogs.com/s-b-b...
https://www.cnblogs.com/shang...代码如下
function twoSum2(array $nums , $target) { $res = []; $nums_match = []; foreach ($nums as $nums_k => $nums_v){ if(!isset($nums_match[$target-$nums_v])){ $nums_match[$target-$nums_v] = $nums_k; } } foreach ($nums as $nums_k => $nums_v){ if (isset($nums_match[$nums_v]) && $nums_match[$nums_v] != $nums_k) { $res[] = $nums_k; $res[] = $nums_match[$nums_v]; return $res; } } }时间复杂度O(n)
三、一遍hash
执行时间24 ms ,提升很大这是在两边hash的基础上进行的优化
代码如下
function twoSum($nums, $target) { $nums_match = []; foreach ($nums as $nums_k => $nums_v){ if((isset($nums_match[$target-$nums_v]))){ return array($nums_match[$target-$nums_v],$nums_k); } $nums_match[$nums_v] = $nums_k; } }时间复杂度O(n)
执行时间16 ms
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/31350.html
摘要:给定表,存在函数,对任意给定的关键字值,代入函数后若能得到包含该关键字的记录在表中的地址,则称表为哈希表,函数为哈希函数。而中的对象就是基于哈希表结构,所以我们构造一个对象即可,是当前遍历到的值,是其与目标值的差。 大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式、调兼容就够掉头发的了,哪还有多余的头发再去折腾。 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,...
摘要:题目描述给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[...
摘要:月下半旬攻略道题,目前已攻略题。目前简单难度攻略已经到题,所以后面会调整自己,在刷算法与数据结构的同时,攻略中等难度的题目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道题,目前已攻略 100 题。 一 目录 不折腾的前端,和咸鱼有什么区别...
摘要:公众号爱写给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值和,其中必须小于。示例输入输出解释与之和等于目标数。 公众号: 爱写bug(ID:icodebugs) 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。...
阅读 1606·2021-11-23 09:51
阅读 1177·2019-08-30 13:57
阅读 2255·2019-08-29 13:12
阅读 2010·2019-08-26 13:57
阅读 1191·2019-08-26 11:32
阅读 977·2019-08-23 15:08
阅读 698·2019-08-23 14:42
阅读 3078·2019-08-23 11:41