Skip to content

重生之我在摸鱼学算法

About 608 wordsAbout 2 min

力扣

2024-12-02

这里贴上我刷过的题目,后续会慢慢补充:力扣题目整理,方便回顾

每天完成一道题目, 或者是学习够半个小时停止分享|如何科学刷题?

问:力扣是如何测试题目的?为什么没有main函数?

简单来说,力扣的评测机内部有main函数,里面会调用你写的函数(方法),传入相应的测试数据,并对比函数(方法)的返回值和正确答案是否一致。如果对于所有的测试数据,返回值都与正确答案一致,则判定通过。

问:作为一名程序员,日常没有用算法解决问题,直接使用封装好的,是不是我们工作中的问题还没有达到需要算法的程度?

如果学过算法,我们就回知道内置的排序函数的时间复杂度是O(nlogn);而如果给定的数据是固定位数的整数,那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为O(nk)其中k为位数。当数据体量很大的时候,节省出来的运行时间就能创造较大的价值。

问:什么是尾递归?尾递归为什么可以优化?

尾递归:求和操作是在“递”的过程中执行的,“归”的过程只是需要层层返回。尾递归为啥能优化?

我的理解就是,尾递归是自顶向下的递归方式,在“递”的时候执行需要的操作。

迭代(iteration):是一种重复执行某个任务的控制结构,在迭代过程中,程序会在满足一定的条件下重复执行某段代码,知道这个条件不再满足。

递归(recursion):是一种算法策略,通过函数调用自身来解决问题,本质上是“将问题分解为更小的子问题”。主要包含两个阶段:

  • 1 递:程序不断深入的调用自身,通常是传入更小或者更简化的参数,直到到达终止条件
  • 2 归:触发终止条件后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果。

Changelog

Last Updated: View All Changelog
  • feat(wiki): algo: 算法总结

    On 3/30/25

求求了,快滚去学习!!!

求求了求求了,快去学习吧!

【题单】贪心算法

不知道方向的时候,可以多看看书,书会给你指明下一步该干什么,加油!