最近开始学。。。。小伙子我觉得你很硬核。。。上来就怼leetcode,学院派我喜欢,毕竟我学了很久python,也没怼过这种,用啥学啥,copy paste那种,kaggle然后抄知乎上的爬虫代码,当然自己原创的也有。总之你很硬核,加油,甘拜下风,泻药。
查了一下,维基百科说
四平方和定理說明所有正整數均可表示為最多四個平方數的和
反正就是数学问题的话就多看数学资料,看理论,比如上面那句。最多。
算法啥的,一部分是数据结构,其实很多是数学,比如牛顿法开平方。
怼leetcode建议对算法思路有些理解,我也不知道你的基础。
最简单就是暴力求解嘛,运算量不大先做出来,毕竟只有1 2 3 4四种可能,也就是说O(4n)问题不大。
递归这种,其实个人感觉这道题不适合用,并没有递归的思想,写出递归公式再说,比如斐波拉切数列,最基本的。
递归是很讨巧的方法,但是慎用,栈溢出,如果输入太复杂的话,这是我的工程理解。机器学习递归还是很少对吧,大家也不缺算力,需要稳定的训练,多次迭代反馈多一些。当然这跟递归没关系,例子没举好。其他工程上的,比如简单的爬虫,哦,也是树状图遍历的问题,好吧我也不知道说啥,总之递归不好玩,至少我不喜欢,写写作业刷刷leetcode没啥事,算力不大。
对于这个,可以试一试搜索树啥的,各种树,其实我也没用过,只是提供思路。搜索树也只是暴力搜索在路径上的优化,比如AlphaGo。反正在暴力搜索基础上做就行,然后肝个命令行美化打印,中文emmmm。输出打到文件里,然后思考怎么优化。步步为营的思路,稳扎稳打,可以吧。
还有我是计算机民科理论家,轮子也没做多少,GayHub上都有。仅供参考。其实我们搞机器学习的都是民科,笑。我不信这些啥搜索树他们都肝过,还一个月AI入门。真爱黑而已。
你的问法比大部分人专业,问啥,图,代码文本都有,很好。
仔细看了一下,你这是暴力搜索和递归的糅合,哎,还有while上面下面都有打印这个,可读性差点,虽然只是打印,真要做这种,建议把每一步的暴力搜索包一下,做个单元测试就行,看你这测试报告一般的做法就知道你懂。这是debug的思路。
还有代码贴出来了,但我最近要养肝,测bug啥的,抱歉。备用思路上面也有。 递归也是算法规划问题的一种,你的思路还行,分步进行,虽然和一个for没本质区别,真的,如果你们C语言老师讲过的话,大概就是递归调用栈,跟顺序结构还有for等价,不过很多理论我也很模糊,思路,多去查资料。
栈与迭代
2018 05 28更新