代码随想录35期总结

总结篇

对于八股取士的看法

算法对于开发来说,我自认为是不重要的,最多只需要直到遇到什么问题可以用什么算法,而不是需要做到精通会写.当前国内的程序员市场出现了饱和,由于大量开源知识,使得人人都能接触到大量的编程知识,这点造成了行业内卷非常严重.但是根据我的观察,面试似乎也成了应试教育.我身边的同学通过培训班几个月时间背八股,跟着做两个项目,把项目的八股背熟,模拟面试多次.这就能让他拿到工作.我从大一开始接触技术,工程化能力比较高,技术栈也很全面,但是没有学算法,背八股的习惯,因为绝大多数开发中都用不到.我是做Java后端的,会用的框架很多,除了spring全家桶,redis,消息队列外,我对docker,k8s很熟练也接触过kubevirt和qemu,Linux很熟练,甚至会一些Linux驱动开发.前端我也做过很多项目.自认为我是通过对后端学习时间久了(这里本来想说深入,但是对框架原理知之甚少).技术的广度有所提升.但是却比不上背诵大量八股,速成的人.这样的情况似乎会催生出面试辅导班的职业.不就又成了高考了吗?找到工作之后做不到工作和生活分离,加班已成了家常便饭.这好像是日本的老路,政府也没有什么举措,略感失望.

对于当前国内社会的看法

当前国内经济下滑,房地产作为经济支柱,人口红利耗尽,我看不到能代替房地产的东西.而且00后不婚族更多,房子的销量在进一步消减,房地产产业也没法东山再起了吧.那么下一个经济的快速增长点会在哪里呢.

算法总结

1. 分治(Divide and Conquer)

核心思想:将问题分成若干个相同或相似的子问题,递归解决子问题,再将子问题的解合并得到原问题的解。
常见应用:快速排序、归并排序、二分查找

2. 回溯(Backtracking)

核心思想:通过试探性地扩展解空间树,从根节点出发逐层向下构建解,遇到不满足条件的情况则回溯,尝试其他路径。
常见应用:N皇后问题、全排列、组合问题

3. 递归(Recursion)

核心思想:函数直接或间接地调用自身,将问题逐层分解直到达到最小问题规模。
常见应用:斐波那契数列、阶乘、树的遍历

4. 动态规划(Dynamic Programming)

核心思想:将问题分解成相互重叠的子问题,通过保存子问题的解来避免重复计算。
常见应用:背包问题、最长公共子序列、编辑距离

5. 单调栈(Monotonic Stack)

核心思想:利用栈的LIFO特性,保持栈中元素的单调性(单调递增或单调递减),用于解决一类特定问题。
常见应用:柱状图中的最大矩形、每日温度

6. 贪心算法(Greedy Algorithm)

核心思想:每一步都选择当前最优解,从而希望最终结果是全局最优。
常见应用:活动选择问题、霍夫曼编码、最小生成树(Prim和Kruskal算法)

7. 图算法(Graph Algorithms)

核心思想:处理图结构的问题,包括图的遍历、最短路径、最小生成树等。
常见应用:广度优先搜索(BFS)、深度优先搜索(DFS)、Dijkstra算法、Floyd-Warshall算法

8. 搜索算法(Search Algorithms)

核心思想:在解空间中系统地搜索目标,常用的有深度优先搜索和广度优先搜索。
常见应用:迷宫求解、路径规划

各算法之间的相对关系:

  • 分治递归:分治通常通过递归实现,是递归的高级应用。
  • 回溯递归:回溯本质上是递归的一种应用,利用递归逐步探索解空间。
  • 动态规划递归:动态规划解决的问题常常可以用递归解决,但动态规划通过保存子问题解避免了重复计算,是递归的优化。
  • 贪心算法动态规划:贪心算法是一种特殊的动态规划,选择每一步的最优解,但不一定适合所有动态规划问题。
  • 单调栈:是栈的一种应用,用于特定问题的求解。
  • 图算法搜索算法:图算法是搜索算法的应用,广度优先搜索和深度优先搜索是图遍历的基本方法。

相关推荐

  1. 代码随想35总结

    2024-06-08 19:58:01       40 阅读
  2. 代码随想 | 总结

    2024-06-08 19:58:01       31 阅读
  3. 代码随想|总结

    2024-06-08 19:58:01       32 阅读
  4. 代码随想算法训练营29Day30|LeetCode 332,51,37

    2024-06-08 19:58:01       56 阅读
  5. 代码随想Day31

    2024-06-08 19:58:01       41 阅读
  6. 代码随想Day37

    2024-06-08 19:58:01       45 阅读
  7. 代码随想】day32

    2024-06-08 19:58:01       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 19:58:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 19:58:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 19:58:01       82 阅读
  4. Python语言-面向对象

    2024-06-08 19:58:01       91 阅读

热门阅读

  1. break、continue、return

    2024-06-08 19:58:01       32 阅读
  2. nginx location正则表达式+案例解析

    2024-06-08 19:58:01       37 阅读
  3. 设计模式-外观模式

    2024-06-08 19:58:01       34 阅读
  4. mysql怎么部署双机

    2024-06-08 19:58:01       34 阅读
  5. Percona XtraBackup备份用户需要的最小权限(mysql)

    2024-06-08 19:58:01       30 阅读
  6. 基于网格的CLIQUE聚类算法的实现

    2024-06-08 19:58:01       26 阅读
  7. Python | 开房门(map)

    2024-06-08 19:58:01       28 阅读
  8. hash和history路由模式的区别

    2024-06-08 19:58:01       33 阅读
  9. 深入Vue.js:从基础到进阶的全面学习指南

    2024-06-08 19:58:01       25 阅读
  10. 2024年BCSP-X小学高年级组初赛真题解析

    2024-06-08 19:58:01       33 阅读