算法与面试之-如何准备算法面试

秋招将临 如何准备算法面试、回答算法面试题 什么是算法面试? 阅读详情

点击上方“芋道源码”,选择“置顶公众号”

技术文章第一时间送达!

源码精品专栏

 

来源:https://juejin.im/post/5b23761a6fb9a00e67148e9e

主要介绍算法面试的一些问题、以及如何准备算法面试

算法面试不仅仅是正确的回答问题

对于面试中遇到的大多数问题,都能有一个合理的思考路径

什么是算法面试?

  • 让大家在面对面试中的算法问题时,有一个合理的思考路径:

  • 不代表能够“正确”回答每一个算法问题,但是合理的思考方向其实更重要,也是正确完成算法面试问题的前提

  • 算法面试优秀不意味着技术面试优秀

  • 技术面试优秀不意味着能够拿到Offer

什么是给出合理的思考路径?

  • 算法面试的目的不是给出一个“正确”答案,

  • 而是展示给面试官你思考问题的方式。

“正确”本身是一个相对概念
  • 算法面试不是高考。

  • 把这个过程看作是和面试官一起探讨一个问题的解决方案。

  • 对于问题的细节和应用环境,可以和面试官沟通。

  • 这种沟通本身很重要,它暗示着你思考问题的方式。

例子

我们需要对一组数据进行排序

  • 设计排序接口,标准库的设计,业务中排序算法。

  • 排序是基础操作,很重要。

解决

快速排序算法:O(nlogn)

  • 忽略了算法使用的基础环境。要动态选择。

(向面试官提问):这组数据有什么样的特征?

  • 有没有可能包含有大量重复的元素?

  • 如果有这种可能的话,三路快排是更好地选择。

  • 普通数据:普通快速排序就行了;java语言标准库排序使用的三路快排。

  • 是否大部分数据距离它正确的位置很近?是否近乎有序?

  • 如果是这样的话,插入排序是更好地选择。

    • 按照业务发生顺序,先发生先完成,几乎有序,插入排序是更好的选择。

  • 是否数据的取值范围非常有限?比如对学生成绩排序。

    • 如果是这样的话,计数排序是更好地选择。高考成绩取值范围有限:计数排序更好。

(向面试官提问):对排序有什么额外的要求?

  • 是否需要稳定排序?

    • 如果是的话,归并排序是更好地选择。

(向面试官提问):数据的存储状况是怎样的?

  • 是否是使用链表存储的?

    • 如果是的话,归并排序是更好地选择。

    • 快排依赖于数组的随机存取。

(向面试官提问):数据的存储状况是怎样的?

  • 数据的大小是否可以装载在内存里?

    • 数据量很大,或者内存很小,不足以装载在内存里,需要使用外排序算法。

对一组数据进行排序小结
  • 有没有可能包含有大量重复的元素?

  • 是否大部分数据距离它正确的位置很近?是否近乎有序?

  • 是否数据的取值范围非常有限?比如对学生成绩排序。

  • 是否需要稳定排序?

  • 是否是使用链表存储的?

  • 数据的大小是否可以装载在内存里?

什么是“正确”的回答一个算法问题
  • 正确除了你能把代码编出来运行出正确的结果。正确还包含对问题的独到见解;优化;代码规范;容错性;

    • 不仅仅是给出解决算法问题的代码,还要把上面因素包括。

    • 如果是非常难的问题,对你的竞争对手来说,也是难的。

  • 关键在于你所表达出的解决问题的思路。

  • 甚至通过表达解题思路的方向,得出结论:这个问题的解决方案,应该在哪一个领域,我可以通过查阅或者进一步学习解决问题。

算法面试只是面试的一部分

  • 算法面试只是技术面试的一部分。

  • 根据你的简历和应聘职位的不同,势必要考察其他技术方面。

  • 项目经历和项目中遇到的实际问题

    • 解决能力,是否参与

    • 深入思考

    • 技术态度

面试前梳理自己简历上所写到的项目:整理一下可能会问到的。

  • 你遇到的印象最深的bug是什么?

  • 面向对象

  • 设计模式

  • 网络相关;安全相关;内存相关;并发相关;…

  • 系统设计;scalability(大规模)

技术面试优秀不意味着能够拿到Offer

技术面试只是面试的一部分。面试不仅仅是考察你的技术水平,还是了解你的过去以及形成的思考行为方式。

  • 关于过去:参与项目至关重要

项目经历:

  • 工作人士

  • 研究生

  • 本科生

    • 毕业设计

    • 其他课程设计(大作业)

如何找到项目?
  • 实习

  • 创建自己的项目

    • 自己做小应用:计划表;备忘录;播放器…

    • 自己解决小问题:爬虫;数据分析;词频统计...

    • “不是项目”的项目:一本优秀的技术书籍的代码整理等…(github)

    • 分享:自己的技术博客;github等等

行为类问题

通过过去了解你的思考行为方式:

  • 遇到的最大的挑战?

  • 犯过的错误?

  • 遭遇的失败?

  • 最享受的工作内容?

  • 遇到冲突的处理方式?

  • 做的最与众不同的事儿?

具体阐述:我在某某项目中遇到一个怎样的算法问题:这个问题是怎样的。它是我遇到的最大的挑战,我是如何克服解决的。

准备好合适的问题问面试官
  • 整个小组的大概运行模式是怎样的?

  • 整个项目的后续规划是如何的?

  • 这个产品中的某个问题是如何解决的?

  • 为什么会选择某些技术?标准?

  • 我对某个技术很感兴趣,在你的小组中我会有怎样的机会深入这种技术?

算法面试仍然是非常重要的一部分

如何准备算法面试

准备面试和准备算法面试 是两个概念

  • 算法面试,只是面试中的一个环节。

  • 远远不需要啃完一本《算法导论》

    • 强调理论证明

    • 第一遍读不需要弄懂证明

    • 前几遍阅读应该记住结论就行了,不需要弄懂证明。把更多的精力放在算法思想上。

  • 针对算法面试,算法导论里面的理论推导和证明不是很重要的方面。

学习切记完美主义

  • 高级数据结构和算法面试提及的概率很低

  • 基础的概念要知道,但是不需要实现等更深入的层面。

  • 远远不需要到达信息学竞赛的水平

算法面试的准备范围

  • 不要轻视基础算法和数据结构,而只关注“有意思”的题目

  • 各种排序算法

  • 基础数据结构和算法的实现:如堆、二叉树、图…

  • 基础数据结构的使用:如链表、栈、队列、哈希表、图、Trie、并查集…

  • 基础算法:深度优先、广度优先、二分查找、递归…

  • 基本算法思想:递归、分治、回溯搜索、贪心、动态规划…

例子

Intel的面试题:

初始序列为1 8 6 2 5 4 7 3的一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:( )

A. 8 3 2 5 1 6 4 7

B. 3 2 8 5 1 4 6 7

C. 3 8 2 5 1 6 7 4

D. 8 2 3 5 1 4 7 6

乐视的面试题:

对一个含有20个元素的有序数组做二分查找,数组起始下标为1,则查找A[2]的比较序列的下标为()

A. 9、5、4、2

B. 10、5、3、2

C. 9、6、2

D. 20、10、5、3、2

考查二分查找法。

阿里巴巴面试题

一组记录排序码为(5、11、7、2、3、17),则利用堆排序方法建立的初始堆为()

A. (11、5、7、2、3、17)

B. (11、5、7、2、17、3)

C. (17、11、7、2、3、5)

D. (17、11、7、5、3、2)

E. (17、7、11、3、5、2)

F. (17、7、11、3、2、5)

百度面试题

在图采用邻接表存储时,求最小生成树的Prim算法的时间复杂度为( )

  • O(n)

  • O(n+e)

  • O(n^2)

  • O(n^3)

重点关注
  • 基础数据结构的使用:如链表、栈、队列、哈希表、图、Trie、并查集…

  • 基础算法:深度优先、广度优先、二分查找、递归…

  • 基本算法思想:递归、分治、回溯搜索、贪心、动态规划…

选择合适的OJ(Online judge):在线判题系统

  • 不要选择过于偏向程序设计竞赛的OJ *面向竞赛难度过高

  • 选择合适的oj

  • leetcode

    • Online Portal for IT Interview

    • 真实的面试问题

    • www.leetcode.com

  • HankeRank

    • 特点是对于问题的分类很详细。偏难,不过可以对某一类细分问题解决。

    • www.hackerrank.com

注意

  • 在学习和实践做题之间,要掌握平衡

  • 基础算法实现与算法思想

如何回答算法面试问题

解决算法面试问题的整体思路

  • 注意题目中的条件

    • 给定一个有序数组...(二分法)

  • 有一些题目中的条件本质是暗示

    • 设计一个O(nlogn)的算法(分治:在一颗搜索树中完成任务,对于数据排序)

    • 无需考虑额外的空间(用空间换时间上的优化)

    • 数据规模大概是10000(O(n^2)就可以)

当没有思路的时候

  • 自己给自己几个简单的测试用例,试验一下

  • 不要忽视暴力解法。暴力解法通常是思考的起点。

例子

LeetCode 3 Longest Substring Without Repeating Characters

在一个字符串中寻找没有重复字母的最长子串 如”abcabcbb”,则结果为”abc” 如”bbbbb”,则结果为”b”

  • 对于字符串s的子串s[i...j]

  • 使用O(n^2)的算法遍历i,j,可以得到所有的子串s[i...j]

  • 使用O(length(s[i...j]))的算法判断s[i...j]中是否含有重复字母

  • 三重循环:复杂度O(n^3),对于n=100的数据,可行

优化算法

  • 遍历常见的算法思路

  • 遍历常见的数据结构

  • 空间和时间的交换 (哈希表)

  • 预处理信息(排序)

  • 在瓶颈处寻找答案:O(nlogn) + O(n^2) ; O(n^3)

    • O(n^2)能否优化。

  • 什么样的问题使用什么样的思路和数据结构。

实际编写问题

  • 极端条件的判断

    • 数组为空?

    • 字符串为空?

    • 数量为0?

    • 指针为NULL?

  • 代码规范:

    • 变量名

    • 模块化

    • 复用性



如果你对 Dubbo / Netty 等等源码与原理感兴趣,欢迎加入我的知识星球一起交流。长按下方二维码噢:


目前在知识星球更新了《Dubbo 源码解析》目录如下:

01. 调试环境搭建
02. 项目结构一览
03. 配置 Configuration
04. 核心流程一览

05. 拓展机制 SPI

06. 线程池

07. 服务暴露 Export

08. 服务引用 Refer

09. 注册中心 Registry

10. 动态编译 Compile

11. 动态代理 Proxy

12. 服务调用 Invoke

13. 调用特性 

14. 过滤器 Filter

15. NIO 服务器

16. P2P 服务器

17. HTTP 服务器

18. 序列化 Serialization

19. 集群容错 Cluster

20. 优雅停机

21. 日志适配

22. 状态检查

23. 监控中心 Monitor

24. 管理中心 Admin

25. 运维命令 QOS

26. 链路追踪 Tracing

... 一共 69+ 篇

目前在知识星球更新了《Netty 源码解析》目录如下:

01. 调试环境搭建
02. NIO 基础
03. Netty 简介
04. 启动 Bootstrap

05. 事件轮询 EventLoop

06. 通道管道 ChannelPipeline

07. 通道 Channel

08. 字节缓冲区 ByteBuf

09. 通道处理器 ChannelHandler

10. 编解码 Codec

11. 工具类 Util

... 一共 61+ 篇

目前在知识星球更新了《数据库实体设计》目录如下:

01. 商品模块
02. 交易模块
03. 营销模块
04. 公用模块

... 一共 17+ 篇

源码不易↓↓↓↓↓

点赞支持老艿艿↓↓

如何准备算法校招面试? 我是自动化专业的应届研究生,最终拿到了tplink、华为、vivo等公司的ssp的offer,分享自己学习过的计算机基础知识(C语言+操作系统+计算机网络+linux)以及数据结构与算法的相关知识,保证看完让你有所成长。 欢迎关注我,学习资料免费分享给你哦!还有其他超多学习资源,都是我自己学习过的,经过过滤之后的资源,免去你还在因为拥有大量资源不知如何入手的纠结,让你体系化学习。 什么是算法面试? 算法面试只是技术面试的一部分,大家要意识到算法只是技术的一部分,技术还包括计算机基础知识、项目中的经验,解决 阅读详情

相关推荐

Android 音频源码分析——AudioTrack设备选择

Android 音频源码分析——AndroidRecord录音(一) Android 音频源码分析——AndroidRecord录音(二) Android 音频源码分析——AndroidRecord音频数据传输流程 Android 音频源码分析——audioserver启动 Android 音频源码分析——AudioFlinger Android 音频源码分析——AudioTrack设备选择 基于Andorid9.0源码 以AudioTrack为例,梳理下输出设备选择流程。 音频设备选择的影响因素: Au

奋斗的菜鸟ing 3974

Algrithem Data Structure

20个常用数据结构和算法 10个常用数据结构 数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 10个常用算法 递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法 ...

oPerform的专栏 425

从Android到鸿蒙:UI框架迁移的实战指南与最佳实践

本文为Android开发者提供了将应用UI框架迁移至鸿蒙系统的实战指南。文章深入对比了Android命令式编程与鸿蒙ArkUI声明式编程的核心差异,详细讲解了从环境配置、布局迁移(如RecyclerView转List)、逻辑处理到多设备适配与性能优化的全流程最佳实践,帮助开发者高效完成迁移工作。

weixin_29208077的博客 435

玩转算法面试:(一)什么是算法面试?

前言 对于面试中遇到的大多数问题 都能有一个合理的思考路径 沟通: 边界条件是怎样的? 数据范围如何? 某些术语是具体如何定义的? 基础数据结构 算法设计思想: 递归分治 贪心 动态规划 回溯搜索 LeetCode 3 Longest Substring Without Repeati...

weixin_33910137的博客 735

playwright-mcp 安装使用的详细教程

Playwright MCP 快速入门指南 Playwright MCP Server 是由微软开发的浏览器自动化服务,通过 MCP 协议为 AI/Agent/LLM 提供网页交互能力。它基于可访问性树而非屏幕截图,支持多种浏览器和运行模式。 安装要求: Node.js v18+ 命令行操作能力 支持 MCP 的客户端 安装方式: 通过 npx 快速启动:npx @playwright/mcp@latest 项目依赖安装:npm install @playwright/mcp 主要特性: 支持 Chrome

上善若水 8022

NX工程图避坑指南:唐康林老师视频里没细说的10个实用技巧与隐藏设置

本文深入解析NX工程图中10个易被忽视的实用技巧与隐藏设置,涵盖视图更新、剖面线自定义、标注样式统一等核心问题。特别针对UG/NX8.5/NX10用户,提供从首选项设置到打印优化的完整解决方案,帮助工程师避开常见陷阱,提升制图效率与规范性。

weixin_28683689的博客 576

程序员如何准备面试中的算法

春招季来临,大家陆续已经开始准备面试斩获心仪 offer。这次 lucifer 就从面试官角度给大家分享一些面试技巧,让大家面试时少走弯路。这次分享侧重「算法面试」。我负责公司的面试已经有 5 年以上了,基本都是初面和二面,因此技术面试的层面比较深,更多的是了解候选人的技术能力是否达标。在这几年时间,我前前后后也面试了很多的候选人。这些人中有的技术能力不行,但也有些人很可...

azl397985856的专栏 858

cesium 实时轨迹

运用cesium中model和polyline添加模型和轨迹线,用CallbackProperty方法来实时改变经纬度。

God's asylum的博客 1964

数据结构 第一章

数据结构 第一章

我的博客 361

【DEIM创新改进】独家下采样创新改进篇 | ECCV 2026 | DEIM 引入FSD-Down频域-空间动态下采样,在下采样过程中保留小目标的高频信息、助力小目标检测、遥感小目标检测有效涨点

🔥本文提出了一种名为FSD-Down的频域-空间动态下采样模块,用于改进DEIM网络模型在小目标检测中的性能。FSD-Down通过小波分解显式保留低频语义和高频细节,结合分组卷积、动态通道权重和可学习缩放因子,自适应强化目标边缘与纹理特征。该模块能有效减轻传统下采样造成的频率混叠和细节丢失,提升对小目标、密集目标和低对比度目标的检测能力。实验表明,FSD-Down计算开销可控,在保持实时性的同时显著提升检测精度,特别是在VisDrone和AITODv2数据集上对小目标的检测性能提升显著。

Ai缝合怪、助力小伙伴高效发论文 83

科技与伦理的平衡点:人类计算的伦理

科技与伦理的平衡点:人类计算的伦理 关键词 科技与伦理 人类计算 隐私问题 道德决策自动化 公平性与偏见 法律与社会责任 摘要 本

AI天才研究院 1164

嵌入式研发笔试题(一)

慢慢积累,量到了才会质变: 1.若某线性表常用的操作是存取任一指定序号的元素和在后进行插入和删除运算,则利用()存储方式节省时间(A) A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 解析:采用顺序存储方式在已知元素序号的情况下可以直接计算出地址,当指定在线性表的最后进行插入和删除运算时,也不需要进行大量元素的移动 扩展:以下与数据的存储结构有关的术语是(ABC)[多选] A.循...

wotaifuzao的博客 6418

RHCA ---RH442-4

这题考试中是没有的,但我做ex的判分脚本里做了,主要是lab环境swap只有512M的,这样后续改了某几个参数后会造成内存不够用导致异常.这里记得是双>,如果没自信的小伙伴可以在考试开始后第一时间把/etc/fstab先备份一个或者vi进入后手动敲一下。根据题意我们需要分2个768M的分区给swap。用free看swap大小是2.0Gi即可。留意红框中的内容即可,最后w保存退出。这个时候可以重启下机器。

Q先生 648

算法面试中这些你不知道的小技巧 — 如何准备算法面试、如何回答算法面试题

这篇文章主要介绍算法面试的一些问题、以及如何准备算法面试。 开始之前,记得点赞收藏加关注哦 ,我这里也准备了很多面试热门知识点和大厂面试题,希望对大家有帮助!有需要的朋友可以点一点下方链接免费领取 链接:点这里!!! 暗号:优快云 算法面试不仅仅是正确的回答问题 对于面试中遇到的大多数问题,都能有一个合理的思考路径 什么是算法面试? 让大家在面对面试中的算法问题时,有一个合理的思考路径 不代表能够“正确”回答每一个算法问题,但是合理的思考方向其实更重要,也是正确完成算法面试问题的前提 算法面试

XingXing_Java的博客 3466

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

如何准备算法面试

算法面试 准备面试和准备算法面试 是两个概念 算法面试,只是面试中的一个环节。 远远不需要啃完一本《算法导论》 强调理论证明 第一遍读不需要弄懂证明 前几遍阅读应该记住结论就行了,不需要弄懂证明。把更多的精力放在算法思想上。 针对算法面试,算法导论里面的理论推导和证明不是很重要的方面。推荐《剑指offer》 学习切记完美主义 高级数据结构和算法面试提及的概率很低 基础的概念要...

weidiezeng的博客 523

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

怎样准备面试中的手写算法

在程序员找工作的过程中考察算法是一个必不可少的环节,尤其是校招面试,应届生如果没有啥项目经验,面试官只能通过手写算法来了解你的基本功。下面讲一讲准备面试中的手写算法需要注意的几点。

溜达虎的博客 379

推荐算法工程师面试准备

大纲: 一.推荐算法工程师做什么? 1.数据分析与处理 2.用户画像 3.个性化推荐 4.ctr预估 5.销量预测 二 怎样准备推荐算法工程师 1.基本技能准备 1.数据分析与数据挖掘(pandas):缺失值和异常值处理,特征选择与构建 2.具备大数据处理的相关技术 hadoop或者spark基本的命令操作,MapReduce 3.算法基础 LR,SVM,GBDT,DNN 算法原理和调优(scik...

WYH19951220的博客 3975

视觉算法岗面试准备

它的计算会考虑样本分类的难易程度,通过一个调制因子来调整损失的权重,使得模型训练的时候更关注那些容易出错、难分类的样本,这样就可以更好地处理类别不平衡的问题啦。梯度消失:比如在一个很深的循环神经网络(RNN)中,随着时间步的增加和网络层数的加深,梯度在反向传播时会不断地乘以一个小于 1 的权重,就像每次乘以 0.9,经过很多层后,梯度就变得微乎其微了。像 YOLO 系列,它直接在图像上生成目标的类别和位置,没有中间复杂的区域提议阶段,所以检测速度很快,但在小目标检测等一些精度要求高的场景下可能稍弱一点。

qq_53093911的博客 1719

大模型算法岗面试准备经验分享

本文分享了大模型算法岗面试的实用准备经验。针对有无实习经历两种背景,给出了具体建议:无实习者应优先争取中厂实习积累实战经验;有实习者需系统复习八股文、研读技术报告和练习手撕代码。重点推荐了必读技术报告(如DeepSeekV3、LLama3.1等)和7个核心模块代码实现(MHA、LayerNorm等)。最后强调面试前应快速复盘笔记要点和关键代码,以展示真实能力和学习潜力。

2401_85592132的博客 1344

玩转算法面试第一章(算法面试准备)

如何准备算法面试 准备面试和准备算法面试是两个概念 算法面试,只是面试中的一个环节 像前两种主要考虑排序之间的比较 一些基础算法的例子,平常需要注意数据结构和基础算法。 算法面试的题目中的条件注意: 当我们面试时...

一曲无痕奈何 402

如何快速准备面试中的算法,获得 Offer?

如何快速准备面试中的算法,获得 Offer? 现如今越来越多的公司在面试过程中会考察数据结构和算法。在最近几年,难度颇有上升趋势。因此作为求职者,在面试前刷刷题似乎已经成为准备过程中必不可少的环节了。 在 5 年前,Leetcode 只有 200 道左右的题目,不仅数量少,而且题目种类也不全面。求职者为了刷算法,除了“泡” Leetcode 以外,还需要去看《剑指 offer》、《编程之美》、《编...

快乐的工程师的博客 1308

C++及数据结构算法面试准备总结

总结一下准备面试时复习c++及算法题的大概流程,适用于已有基础,面对面试需要临时抱佛脚的情况 //持续更新与补充中 1.C++基础知识:去W3Cschool 对着教程把所有模块粗看一遍,哪个地方不行再细看,最后以那20道必考C++面试题为准 https://www.w3cschool.cn/cpp/cpp-data-types.html 一般情况下经常问到的...

DargonWain的博客 1030

准备算法面试

准备算法面试和准备面试不是同一个事情 算法面试只是面试的一部分   算法导论有太多的推导证明,面试算法的时候不必全掌握。初次阅读算法导论的时候,一定要有选择地去读,学习切忌完美主义。   高级数据结构和算法面试提及的概率很低:   红黑树、计算几何、B-Tree、数论、斐波那契堆、FFT 远远不需要达到信息学竞赛的水平(ACM)    算法面试的准备范围  

YANG_Gang2017的博客 905
上一篇: 分布式作业 Elastic-Job-Lite 源码分析 —— 注册中心
下一篇: 架构设计方法初探
公众号-芋道源码
博客等级 码龄10年 1636粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值