摘要:问题解答这个无非就是时间换空间,空间换时间的计算时间换空间不能可能安原位来空间换时间快速查找可以用来做
问题:
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.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
解答:
这个无非就是时间换空间,空间换时间的计算:
1.时间换空间:
//不能sort, 可能安原位来 public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; if (nums == null || nums.length < 2) return result; for (int i = 0; i < nums.length - 1; i++) { for (int j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] == target) { result[0] = i; result[1] = j; return result; } } } return result; }
2.空间换时间
//快速查找可以用hashmap来做 public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; if (nums == null || nums.length < 2) return result; Mapmap = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (map.containsKey(target - nums[i])) { result[1] = i; result[0] = map.get(target - nums[i]); } map.put(nums[i], i); } return result; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64835.html
摘要:找符合条件的总数。双指针区间考虑边界,长度,为空,等。之后的范围用双指针和表示。若三个指针的数字之和为,加入结果数组。不要求,所以不用判断了。同理,头部两个指针向后推移,后面建立左右指针夹逼,找到四指针和为目标值的元素。 Two Sum Problem Given an array of integers, find two numbers such that they add up ...
摘要:解题思路题目要求两个数和等于,返回其题目说明不会有重复情况,所以我们一旦发现符合情况的,就可以直接结束循环并返回。特殊情况就是正好等于,那肯定是最接近的情况,直接返回即可。 Two SumGiven an array of integers, return indices of the two numbers such that they add up to a specific ta...
摘要:如果没有,就到里面复杂度分析就是,因为只扫了一遍数组。复杂度分析当然就是最坏情况了,也是标准的双指针复杂度。复杂度分析这种题应该不太需要分析复杂度吧,能实现就行。复杂度分析还是最后再说两句所以可以看出,很多题目思路一致,换汤不换药。 Two Sum 友情提示:篇幅较长,找题目的话,右边有目录,幸好我会MarkDown语法。改成了系列模式,因为类似的题不少,本质上都是换壳,所以在同一篇文...
摘要:给出两个非空的链表用来表示两个非负的整数。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。需要考虑到两个链表长度不同时遍历方式链表遍历完成时最后一位是否需要进一位。 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 ...
摘要:给出两个非空的链表用来表示两个非负的整数。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。需要考虑到两个链表长度不同时遍历方式链表遍历完成时最后一位是否需要进一位。 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 ...
摘要:控制容器内容元素和空白空间在主轴方向对齐。子元素相邻的不会发生合并。三深入了解规则如果存在正自由空间,则采用组合计算子元素在主轴上的比例。 背景 flex布局更有效的实现对齐,空间分配。最近又学习下flex子元素的尺寸计算规则,主要是flex-grow, flex-shrink的计算规则的学习。 一、基本概念 showImg(https://user-images.githubuser...
阅读 2235·2021-11-24 11:15
阅读 3078·2021-11-24 10:46
阅读 1377·2021-11-24 09:39
阅读 3923·2021-08-18 10:21
阅读 1477·2019-08-30 15:53
阅读 1394·2019-08-30 11:19
阅读 3318·2019-08-29 18:42
阅读 2321·2019-08-29 16:58