• 基础夯实,字节内部总结240道算法LeetCode刷题笔记,直呼太全


    1、什么是算法

    算法(algorithm,[ˈælɡərɪðəm],计算程序):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

    mark:我们可以把所有的算法想象为一本“菜谱”,特定的算法比如菜谱中的的一道“老醋花生米”的制作流程,只要按照菜谱的要求制作老醋花生米,那么谁都可以做出一道好吃的老醋花生米。so,这个做菜的步骤就可以理解为:“解决问题的步骤”

    2、算法的意义

    假设计算机无限快,并且计算机存储容器是免费的,我们还需要各种乱七八糟的算法吗?如果计算机无限快,那么对于某一个问题来说,任何一个都可以解决他的正确方法都可以的!

    当然,计算机可以做到很快,但是不能做到无限快,存储也可以很便宜但是不能做到免费。

    那么问题就来了效率:解决同一个问题的各种不同算法的效率常常相差非常大,这种效率上的差距的影响往往比硬件和软件方面的差距还要大。

    据了解很多大厂技术面试的要求是:技术要好,计算机基础扎实,熟练掌握算法和数据结构,语言不重要,熟练度很重要。每一轮技术面试都可能考代码,不只考算法,但一定会考算法。

    如何学习算法?

    为了帮助大家学好算法,小编厚着脸皮找字节跳动面试官要了两份超级nice的算法面试笔记,现在免费分享给大家

    数据结构与算法笔记

    这份笔记内容全部都是纯手打,排序算法/数据结构的代码可能不是最优解,代码的实现都是以⽐较容易理解的⽅式去写的。⼏乎每句代码都有对应的注释,应该是能看懂的。

    六、希尔排序

    七、堆排序

    左神《程序员代码面试指南》

    书籍涉及算法与数据结构编程题目240道以上,并且个人实现出最优解,大部分题目为面试高频。
    目录(算法分为将、校、尉、士四个等级来表示难易程度)

    第4章递归和动态规划
    裴波那契系列问题的递归和动态规划(将★★★★)
    矩阵的最小路径和(尉★★)
    换钱的最少货币数(尉★★)
    换钱的方法数(尉★★)
    最长递增子序列(校★★★)
    汉诺塔问题(校★★★)
    最长公共子序列问题(尉★★)
    最长公共子串问题(校★★★)
    最小编辑代价(小★★★)
    字符串的交错组成(校★★★)
    龙与地下城游戏问题(尉★★)
    数字字符串转换为字母组合的种数(尉★★)
    表达式得到期望结果的组成种数(校★★★)
    排成一条线的纸牌博弈问题(尉★★)
    跳跃游戏(士★)
    数组中的最长连续序列(尉★★)
    N皇后问题(校★★★)

  • 相关阅读:
    Flask自定义装饰和g的使用
    基于springboot实现的摄影跟拍预定管理系统
    【Maven】VSCode Java+Maven 环境配置
    微信小程序自定义组件、组件应用、插槽、slot
    Unity游戏Mod/插件制作教程02 - 开发环境准备
    人脸活体检测技术的应用,有效避免人脸识别容易被攻击的缺陷
    linux常见环境安装
    Learn Prompt-Prompt 高级技巧:思维链 Chain of Thought Prompting
    Python 二进制数据处理与转换
    day26-过滤器Filter
  • 原文地址:https://blog.csdn.net/LBWNB_Java/article/details/127764860