zoukankan      html  css  js  c++  java
  • 枚举算法总结 coming~^.*

    感谢CJ同学监督╭(╯^╰)╮。从放假到现在都木有更新博客了~噶呜~小娘谨记教诲,每天会更新博客==!!

    看了一下POJ训练计划,虽然已经零零散散做了40多道题了,还是从头开始整理一下漏掉的知识点。Today is 枚举~!

    很多人认为枚举是笨笨的,但是枚举却又总是我们面对算法问题时的第一反应,也比较容易想到,只要用得好,就不会笨。

    在任何情况下,选准最合适的对象,无论是枚举还是其他算法思想,都是最最关键的。选准(枚举)对象的根本原因还是在于优化,具体表现为减少求解步骤,缩小求解的解空间,或者是使程序更具有可读性和易于编写

    枚举算法因为要列举问题的所有可能的答案,所有它具备以下几个特点:

        1、得到的结果肯定是正确的;

        2、可能做了很多的无用功,浪费了宝贵的时间,效率低下。

        3、通常会涉及到求极值(如最大,最小,最重等)。

    枚举算法的解题过程分为两步:

        1,逐一列举可能的解的范围,用循环结构实现。

        2,对每一个枚举的可能进行检验,判断是否为真正的解,用选择结构实现。

    分析出以上二个核心问题后,再合成: 
        要注意循环变量与判断对象是否是同一个变量。

    知识点不多,具体到题目中再涉及,明天会写枚举的解题报告。嘿嘿~晚安~~!

  • 相关阅读:
    lintcode:previous permutation上一个排列
    lintcode : 二叉树的序列化和反序列化
    lintcode : find peak element 寻找峰值
    lintcode 中等题:搜索旋转排序数组II
    lintcode :搜索旋转排序数组
    lintcode: search for a range 搜索区间
    lintcode:最大子数组差
    lintcode:最大子数组II
    lintcode :最大子数组
    lintcode : 平衡二叉树
  • 原文地址:https://www.cnblogs.com/PJQOOO/p/3927939.html
Copyright © 2011-2022 走看看