连 01 背包都看不懂, 零钱兑换都不会,还能继续走 Coding 这条路吗

2020 年 11 月 16 日
 guixiexiezou

辞职许久了,思考了很久,觉得自己是不是不太适合当程序员了?最近看算法,刷 leetcode,简单的基本都会(相信在做的各位也没几个不会的),遇到最优解的,动态规划的,基本一个都不会了(哭。。。)

然后昨天今天特意看了下 01 背包问题,我发现我居然看不懂了。。。

今天看到一个简单的零钱兑换问题。只会用回溯法。。。我是不是没救了。。。

附代码

private int change0(int[] arr, int target) {
        Arrays.sort(arr);
        ArrayDeque<Integer> stack = new ArrayDeque<>();
        int index = arr.length-1;
        while (!stack.isEmpty() || index >= 0) {
            if (index < 0) {
                if (stack.isEmpty()) return -1; //找不到
                int last = stack.pop();
                target += arr[last];
                index = last-1;
                continue;
            }
            if (arr[index] == target) {
                return stack.size()+1;
            } else if (arr[index] > target) {
                index--;
            } else {
                target -= arr[index];
                stack.push(index);
            }
        }
        return -1;
}
10319 次点击
所在节点    程序员
75 条回复
hubahuba
2020 年 11 月 16 日
cao
guixiexiezou
2020 年 11 月 16 日
而且代码还是错误的.........哎😔
v2webdev
2020 年 11 月 16 日
矫情的话,去一亩三分地上吧,V 站不适合。
crclz
2020 年 11 月 16 日
0-1 背包,不要试着去理解它,去感受它。

多做几个变形题(做不出来看题解也行),自然就理解了。
darklowly
2020 年 11 月 16 日
写程序有两大条路

1 系统类
2 算法类

系统类,不需要那么多的算法,简单的数据,链表,树,hash 就够了。其他的就是计算机系统方面的知识。例如,组成原理,操作系统,设计模式,架构模式。这条路适合智力正常范围的人,因为智力正常的人,更容易感受到困难,就更容易设计简单的系统,反而对设计有好处。

算法类,侧重点就是数学,适合智力好一点的人,反而这类人不容易感受到困难,设计的系统会违反常人的直觉,反而是不好的设计。当然也有很多智商不够,自以为很够的人,既设计不好算法,又搞的很复杂。

所以不要灰心。
BBCCBB
2020 年 11 月 16 日
你要有点基础后就好了, 别气馁.. 刚开始时都是这样, 不停的刷, 总结, 系统的学.

0-1 背包可以看看这个 https://www.cnblogs.com/labuladong/p/12455089.html
guixiexiezou
2020 年 11 月 16 日
@v2webdev 可能是太久没工作了吧,心又静不下来。多谢指点
guixiexiezou
2020 年 11 月 16 日
@darklowly 嗯嗯,多谢指点。我也觉得我如果继续 coding 下去,最多最多还是只能走工程这条路,也就是所谓的用别别人的轮子
guixiexiezou
2020 年 11 月 16 日
@BBCCBB 多谢,我去看看
guixiexiezou
2020 年 11 月 16 日
@crclz 我再感受 2 天吧,说不定真就领悟了
rodrick
2020 年 11 月 16 日
不要灰心,换个角度想想,你如果转行了又怎么知道自己更适合另外一行呢
deepall
2020 年 11 月 16 日
这不是凡尔赛人?
sangbiao
2020 年 11 月 16 日
@deepall 这不就是凡尔赛人
a62527776a
2020 年 11 月 16 日
太牛了(吹捧一波
keymao
2020 年 11 月 16 日
这不就是凡尔赛人
guchengyehai1
2020 年 11 月 16 日
回溯再加个记忆就和 dp 差不多了
Mac
2020 年 11 月 16 日
我只会百度谷歌,其它的一概不会
shubo83
2020 年 11 月 16 日
可以先当不会算法的野生程序员,比如我
leido
2020 年 11 月 16 日
楼主, 背包九讲看了吗?

DP 根本算不上什么高级算法, 扯不到什么系统和算法上去 @darklowly

背包问题我高中就会解了(自学), 现在还在做运维 , 我是不是比楼主更菜
wph95
2020 年 11 月 16 日
背包问题一个教程就可以搞定 :)
https://github.com/tianyicui/pack
// 背包九讲永远滴神

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

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

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

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

© 2021 V2EX