请教算法怎么入门??? 每次鼓起勇气上 leetcode 后,都要怀疑自己的智商。

2016-05-10 08:52:04 +08:00
 ren2881971

比如 这道题(据说很简单)

Given an array and a value, remove all instances of that > value in place and return the new length.

The order of elements can be changed. It doesn't matter what you leave beyond the new length. 以下是答案。

class Solution {
public:
    int removeElement(int A[], int n, int elem) {
        int i = 0;
        int j = 0;
        for(i = 0; i < n; i++) {
            if(A[i] == elem) {
                continue;
            }

            A[j] = A[i];
            j++;
        }

        return j;
    }
};

我不明白为什么要加 A[j] = A[i]; 这行代码。 真心请教怎么入门。。

14777 次点击
所在节点    算法
71 条回复
msg7086
2016-05-10 21:05:22 +08:00
@ren2881971 这些基础知识就是钱啊。
macha
2016-05-10 21:19:40 +08:00
这个题一定要看到数组顺序可以变,这样的话开两个指针一个在最前一个在最后,前面的指针碰到 value 就和后面的指针交换值,同时后面的指针前移一位。这样循环下去直到两个指针碰撞。最后新数组的长度就是前面那个指针跑过的长度。
楼主可以先刷基础题,基础题刷完了才会有思路。不要怕被打击信心。
ren2881971
2016-05-10 21:35:59 +08:00
@msg7086 我的意思是 从编码入手开始逐渐展开学习~ 而不是 上来就学些纯理论。。 容易受打击。毕竟不是上学。没那么多时间~
ren2881971
2016-05-10 21:36:26 +08:00
@billion 发出来 学习下。
ryerh
2016-05-10 21:54:43 +08:00
心态捋正,菜鸟就菜鸟,基础不好就补基础,静不下心就不学。
ren2881971
2016-05-10 22:08:00 +08:00
@ryerh 您说的基础是指 57 楼兄弟说的计算机知识体系?
creatorYC
2016-05-10 22:17:38 +08:00
怀疑智商又有什么关系呢?难道不去刷就能代表这不是事实吗?所以不要怂,就是干
LonelyWalker
2016-05-11 00:24:24 +08:00
数组传递的是引用啊,去掉肯定过不了的,唉。
sheldoner
2016-05-11 21:33:25 +08:00
@jasonlz 现在不是不想努力,而是不知道怎么努力有什么好的成长路线么,有的话麻烦告知
dev2dev
2017-03-05 09:15:38 +08:00
@sheldoner 很多事情要努力了之后才知道结果
sheldoner
2017-03-08 15:04:40 +08:00
@dev2dev 赞!!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/277511

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX