由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode: Remove Duplicates from Sorted Array
相关主题
我再说说我挂掉的那道题吧[emc/greenplum面试]senior engineer
amazon tel interviewFB电面
为什么加个结束符leetcode就run time error呢?今天计划做20题
[合集] google phone interview questions给定一个值和sorted队列,只有唯一的pair其和等于给定值
请教一道题面试题求解:remove first duplicate number from an array
请教一道面试题cc1501.3题,请帮忙测试下代码
longest subarray with numbers arranged as a seq顶风上来问道题:一个很大char[], 如何in-place 删除重复元素
Re: 贡献个facebook电话interviewGoogle电话面试题目
相关话题的讨论汇总
话题: int话题: return话题: pos话题: remove话题: duplicates
进入JobHunting版参与讨论
1 (共1页)
x*****0
发帖数: 452
1
开始做leetcode,按二爷的总结,由易到难,一天两道。
今天是 remove duplicates from sorted array 1, 2
http://leetcode.com/onlinejudge#question_26
http://leetcode.com/onlinejudge#question_80
下面是我的代码:
int rightMost_of_curElem(int A[], int curElem, int ind, int n)
{
while(ind {
if(A[ind]!=curElem)
break;
++ind;
}

return --ind;
}
(1)
int remove_duplicates(int A[], int n)
{
int i=0;
int unique_num = 0;
while(i {
int cur_elem = A[i];
int pos = rightMost_of_curElem(A, cur_elem, i, n);
//cout << pos << endl;
i = pos+1;
A[unique_num++] = A[pos];
}

return unique_num;
}
(2)
int remove_duplicates(int A[], int n)
{
int i=0;
int unique_num = 0;
while(i {
int cur_elem = A[i];
int pos = rightMost_of_curElem(A, cur_elem, i, n);

if(A[pos]==A[pos-1])
{
A[unique_num++] = A[pos];
}
A[unique_num++] = A[pos];

i = pos+1;
}

return unique_num;
}
代码经过了online的测试~。 如果哪位哥们有空,帮忙review代码那是最好啦~。 就代
码本身提些意见。先谢谢啦。其实能一起交流那是最好了,我也很乐意提出我的意见。
就是水平太菜的话,别介意哈~
c*****l
发帖数: 30
2
public class Solution {
public int removeDuplicates(int[] A) {
if(A.length == 0) // edge case
return 0;

int len = A.length;
int curIdx = 1;
int endIdx = 0;
while(curIdx < len) {
if(A[endIdx] == A[curIdx])
curIdx++;
else
A[++endIdx] = A[curIdx++];
}
return endIdx + 1;
}
}
f*******4
发帖数: 64
3
我也写了一个,1和2的做法一样
int removeDuplicates(int A[], int n) {
int uniq = (n<=1?n:2);
for (int i=2; i if (A[i] != A[uniq-1] || A[i] != A[uniq-2])
A[uniq++] = A[i];
}
return uniq;
}

【在 x*****0 的大作中提到】
: 开始做leetcode,按二爷的总结,由易到难,一天两道。
: 今天是 remove duplicates from sorted array 1, 2
: http://leetcode.com/onlinejudge#question_26
: http://leetcode.com/onlinejudge#question_80
: 下面是我的代码:
: int rightMost_of_curElem(int A[], int curElem, int ind, int n)
: {
: while(ind: {
: if(A[ind]!=curElem)

x*****0
发帖数: 452
4
根据Loki的建议,重写了代码。现在将能够容忍的重复次数作为参数。如下:
int getNextElement(int *data, int len, int start, int curElem)
{
for(; (start < len) && (data[start]==curElem); start++)
{
}

return start;
}
int removeDuplicatesUtil(int *data, int len, int tolerance)
{
int count = 0;
int nextBeg = 0;
for (int curBeg = 0; curBeg < len; curBeg=nextBeg)
{
nextBeg = getNextElement(data, len, curBeg+1, data[curBeg]);
int curEnd = min(curBeg+tolerance, nextBeg);

memcpy(data+count, data+curBeg, (curEnd-curBeg)*sizeof(data[0]));
count += (curEnd-curBeg);
}

return count;
}
int removeDuplicates(int *data, int len)
{
return removeDuplicatesUtil(data, len, 1);
//return removeDuplicatesUtil(data, len, 2);
}
reference:
http://codereview.stackexchange.com/questions/23582/remove-dupl
E****U
发帖数: 59
5
class Solution {
public:
int removeDuplicates(int A[], int n) {
if (!A || n <= 0) return 0;
int dsc = 1;
for (int i = 1; i < n; ++i)
{
if (A[i] != A[i-1])
{
A[dsc++] = A[i];
}
}
return dsc;
}
};
l******n
发帖数: 1250
6
请帮我看看我错在哪里了, 测试[1,1,1] 无返回
class Solution {
public:
int removeDuplicates(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i=0;
int m = n; //return value
while(A[i+1] != '\0')
{
if (A[i] == A[i+1])
{
// remove current
int k=i;

while(A[k+1] != '\0')
{
A[k] = A[k+1];

k++;
}

A[k] = '\0';

m --;
}

i++;
}

return m;

}
};
E****U
发帖数: 59
7
Remove Duplicates from Sorted Array II:
class Solution {
public:
int removeDuplicatesII(int A[], int n) {
if (!A || n <= 0) return 0;
int dsc = 1;
int dupCount = 0;
for (int i = 1; i < n; ++i)
{
if (A[i] != A[i-1])
{
A[dsc++] = A[i];
dupCount = 0;
}
else
{
++dupCount;
if (dupCount < 2)
{
A[dsc++] = A[i];
}
}
}
return dsc;
}
};
1 (共1页)
进入JobHunting版参与讨论
相关主题
Google电话面试题目请教一道题
一道面试题请教一道面试题
问个面试题longest subarray with numbers arranged as a seq
find median for k sorted arraysRe: 贡献个facebook电话interview
我再说说我挂掉的那道题吧[emc/greenplum面试]senior engineer
amazon tel interviewFB电面
为什么加个结束符leetcode就run time error呢?今天计划做20题
[合集] google phone interview questions给定一个值和sorted队列,只有唯一的pair其和等于给定值
相关话题的讨论汇总
话题: int话题: return话题: pos话题: remove话题: duplicates