由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode 的two sum
相关主题
twoSum菜鸟问个two sum的变型题
开始刷leetcode,第一道题一直有run time error问道题,谁给个效率高点的解法
leetcode 上的 two sum一个实际碰到的问题
4sum o(n^2)超时2-sum 用hash table实现的问题
最新L家面经请教个面试题
Linked电面分享,挺好的题 应该已挂求点评:电话面试(今天第二天没有消息回复,感觉可能挂了)
请教LeetCode的3SumLinkedIn电面
4sum的那道题sleetcode中的online judge都报runtime error, 用本地编译器执行一些例子都ok
相关话题的讨论汇总
话题: int话题: numbers话题: integer话题: twosum话题: target
进入JobHunting版参与讨论
1 (共1页)
g***j
发帖数: 1275
1
发现题目的要求改了
1 要求返回的是index,这就是说不能排序,排序index就打乱了吧?
2 输入的数组中的数会有重复,这就是说不能用hash?
是这样的么?还是我想复杂了?
r*******k
发帖数: 1423
2
排序把index记下来不就可以了?

【在 g***j 的大作中提到】
: 发现题目的要求改了
: 1 要求返回的是index,这就是说不能排序,排序index就打乱了吧?
: 2 输入的数组中的数会有重复,这就是说不能用hash?
: 是这样的么?还是我想复杂了?

g***j
发帖数: 1275
3
怎么最快速的记住?
重新弄一个
struct entry {
int val;
int index;
}
然后排序这个?

【在 r*******k 的大作中提到】
: 排序把index记下来不就可以了?
r*******k
发帖数: 1423
4
不是不可以啊

【在 g***j 的大作中提到】
: 怎么最快速的记住?
: 重新弄一个
: struct entry {
: int val;
: int index;
: }
: 然后排序这个?

R*****i
发帖数: 2126
5
感觉排序就傻了,应该是扫描这个数组,同时在hashtable里找余值,找到就return
index, 找不到就把这个数和index放入hashtable里。这个题不care重复值的,找到就行
j*****8
发帖数: 3635
6
或者用一个index数组,swap value数组的同时也swap这个index数组就行

【在 g***j 的大作中提到】
: 怎么最快速的记住?
: 重新弄一个
: struct entry {
: int val;
: int index;
: }
: 然后排序这个?

r*******k
发帖数: 1423
7
果然,赞
public class Solution {
public int[] twoSum(int[] numbers, int target) {
int[] res = new int[2];
HashMap scannedList = new HashMap >();
for(int i = 0; i int tmp = numbers[i];
if (scannedList.get(target - tmp)!=null){
res[0] = scannedList.get(target - tmp);
res[1] = i+1;
} else {
scannedList.put(numbers[i], i+1);
break;
}
}
return res;
}
}

就行

【在 R*****i 的大作中提到】
: 感觉排序就傻了,应该是扫描这个数组,同时在hashtable里找余值,找到就return
: index, 找不到就把这个数和index放入hashtable里。这个题不care重复值的,找到就行
: 。

R*****i
发帖数: 2126
8
这个是C#版本
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TwoSum
{
class Program
{
static void Main(string[] args)
{
int[] numbers = new int[] { 1, 2, 10, 11, 3, 7, 11, 15 };
int[] li = twoSum(numbers, 9);
if (li != null && li.Length > 1)
{
Console.WriteLine("index1 = {0}, index2 = {1}", li[0], li[1]
);
}
}

static int[] twoSum(int[] numbers, int target)
{
Dictionary dict = new Dictionary();
for (int i = 0; i < numbers.Length; i++)
{
int rem = target - numbers[i];
if (dict.ContainsKey(rem))
{
return new int[2] { dict[rem], i+1 };
}
else
{
dict[numbers[i]] = i+1;
}
}
return null;
}
}
}
c******y
发帖数: 174
9

Integer
刚lc测试通不过,发现break应该在if里 不是在else里

【在 r*******k 的大作中提到】
: 果然,赞
: public class Solution {
: public int[] twoSum(int[] numbers, int target) {
: int[] res = new int[2];
: HashMap scannedList = new HashMap: >();
: for(int i = 0; i: int tmp = numbers[i];
: if (scannedList.get(target - tmp)!=null){
: res[0] = scannedList.get(target - tmp);

g***j
发帖数: 1275
10
为啥不care重复的
比如 0 0 0 0 sum 是 0
你的算法返回哪个?

就行

【在 R*****i 的大作中提到】
: 感觉排序就傻了,应该是扫描这个数组,同时在hashtable里找余值,找到就return
: index, 找不到就把这个数和index放入hashtable里。这个题不care重复值的,找到就行
: 。

r*******k
发帖数: 1423
11
题目的要求应该是返回一个【0,0】
而不是一堆【0,0】

【在 g***j 的大作中提到】
: 为啥不care重复的
: 比如 0 0 0 0 sum 是 0
: 你的算法返回哪个?
:
: 就行

g***j
发帖数: 1275
12
题目要求返回的是index 而不是数字本身

【在 r*******k 的大作中提到】
: 题目的要求应该是返回一个【0,0】
: 而不是一堆【0,0】

1 (共1页)
进入JobHunting版参与讨论
相关主题
sleetcode中的online judge都报runtime error, 用本地编译器执行一些例子都ok最新L家面经
3sum on LeetCode OJLinked电面分享,挺好的题 应该已挂
问个fb onsite题目请教LeetCode的3Sum
问两道google题4sum的那道题
twoSum菜鸟问个two sum的变型题
开始刷leetcode,第一道题一直有run time error问道题,谁给个效率高点的解法
leetcode 上的 two sum一个实际碰到的问题
4sum o(n^2)超时2-sum 用hash table实现的问题
相关话题的讨论汇总
话题: int话题: numbers话题: integer话题: twosum话题: target