程序员算法解题方法与思路

 我来答
世纪网络17
2022-07-15 · TA获得超过5958个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:144万
展开全部
此方法通过写出问题的一些特定的例子,分析总结其中的规律。具体而言,就是通过列举少量的特殊情况,经过分析,最后找出一般的关系。

问题与以前莫个算法解决过的问题相似,此时就可以触类旁通,尝试改进原有算法来解决

此方法首先将问题简单化,如改变数据类型、空间大小等,然后尝试着将简化后的问题解决。

为了降低问题的复杂度,很多时候都会将问题逐层分解,最后归结为一些简单的问题,这就是递归法

将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治法一般包括以下三个步骤:

1)将问题的实例划分为几个较小的实例,最好最有相等的规模。

2)对这些较小的实例求解,而最常见的方法一般是递归。

3)如歌有必要,合并这些较小问题的解,以得到原始问题的解。

一般而言,时间复杂度越低的算法越高效。而更想达到时间复杂度的高效,很多时候就必须在空间上有所牺牲,用空间来换时间。而用空间换时间最有效的方法就是Hash法、大数组和位图法。

在设计题目时,往往会有一个载体,这个载体便是数据结构。如数组、链表、二叉树和图等,当窄体确定后,可用的算法自然而然就会显现出来。可问题是很多时候并不确定这个载体是什么,当无法确定这个载体时,一般也就很难想到合适的方法了。

当遇到上面的问题时,可以采用最原始的思考问题的方式——轮询法。常考的数据结构与算法一共就几种,如下图

此种方法看似笨拙,却很实用,只要对常见的数据结构与算法烂熟于心,一点都没有问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
博阳精讯
2024-07-25 广告
在博阳精讯,我们高度重视流程梳理与优化工作。通过深入研究现有流程,我们精准识别瓶颈与低效环节,并采用先进的工具和技术进行优化。这不仅提升了工作效率,也确保了业务运营的顺畅进行。我们不断追求卓越,努力为客户带来更优质的服务体验。流程优化是我们... 点击进入详情页
本回答由博阳精讯提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式