枚举思想
来源:互联网 发布:淘宝客服模板制作 编辑:程序博客网 时间:2024/05/19 19:40
今天分享一下枚举思想,这种思想也常是码畜,码奴常用的手段,经常遭到码农以上级别的鄙视,枚举思想可以说是在被逼无奈时最后的狂吼。
一: 思想
有时我们解决某个问题时找不到一点规律,此时我们很迷茫,很痛苦,很蛋疼,突然我们灵光一现,发现候选答案的问题规模在百万之内,
此时我们就想到了从候选答案中逐一比较,一直找到正确解为止。
二: 条件
前面也说了,枚举是我们在无奈之后的最后一击,那么使用枚举时我们应该尽量遵守下面的两个条件。
① 地球人都不能给我找出此问题的潜在规律。
② 候选答案的集合是一个计算机必须能够承受的。
三:举例
下面是一个填写数字的模板,其中每个字都代表数字中的”0~9“,那么要求我们输入的数字能够满足此模板。
思路:首先拿到这个题,蛋还是比较疼的,因为找不到好的解题思路,仔细想想这属于查找类型的问题,常用的查找也就5种,能适合
该问题的查找也就”顺序查找“和”二分查找“,然后仔细看看问题规模最多也就105=100000,其实根据“二分"的思想在这个问题
中并不合适,最后只能用“顺序查找“了。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Meiju{ class Program { static void Main(string[] args) { int count = 0; //“算”字的取值范围 for (int i1 = 1; i1 < 10; i1++) { //“法”字的取值范围 for (int i2 = 0; i2 < 10; i2++) { //“洗”字的取值范围 for (int i3 = 0; i3 < 10; i3++) { //"脑"字的取值范围 for (int i4 = 0; i4 < 10; i4++) { //"题"字的取值范围 for (int i5 = 1; i5 < 10; i5++) { count++; //一个猜想值 var guess = (i1 * 10000 + i2 * 1000 + i3 * 100 + i4 * 10 + i5) * i1; //最终结果值 var result = i5 * 100000 + i5 * 10000 + i5 * 1000 + i5 * 100 + i5 * 10 + i5; if (guess == result) { Console.WriteLine("\n\n不简单啊,费了我 {0}次,才tmd的找出来\n\n", count); Console.WriteLine("\t{0}\t{1}\t{2}\t{3}\t{4}", i1, i2, i3, i4, i5); Console.WriteLine("\n\n\tX\t\t\t\t{0}", i1); Console.WriteLine("—————————————————————————————"); Console.WriteLine("\n{0}\t{1}\t{2}\t{3}\t{4}\t{5}", i5, i5, i5, i5, i5, i5); Console.Read(); } Console.WriteLine("第{0}搜索", count); } } } } } Console.Read(); } }}
最后我们还是解决了问题,发现其中的时间复杂度达到了O(n5),这个复杂度理论上是让人不能接收的,还好我们的n在10以内,
n的每一次的自增对cpu来说都是莫大的伤害。
原帖更精彩
0 0
- 枚举思想
- 枚举思想
- 枚举思想
- 第四篇 枚举思想
- 算法之枚举思想
- 枚举的基本思想总结
- 算法思想:枚举与剪枝
- 算法的领悟(上):枚举思想
- 《Java 编程思想》--第十九章:枚举类型
- 枚举类型 Java编程思想 读书笔记
- hdu 5143 暴力枚举,转换的思想
- java高级编程思想:枚举单例
- 《java编程思想》第十九章 枚举
- Java编程思想-19枚举类型
- 八大算法思想(一)------------------枚举算法
- Java编程思想之枚举类型
- 浅谈特殊枚举思想的应用
- Java 编程思想(十)枚举
- 欢迎使用CSDN-markdown编辑器
- 适配器模式与外观模式(heade first设计模式 读书笔记)
- property 指示符
- div和img之间的缝隙问题
- JAVA连接sqlserver2012数据库
- 枚举思想
- ZooKeeper集群部署流程
- 期刊分区以及影响因子是什么?
- 用kmeans对图片像素进行聚类
- 文章标题
- zzulioj--1746--三角形面积(几何水题)
- netty5笔记-总体流程分析2-ChannelPipeline
- Storm依赖软件的安装
- 在CentOS 7上利用systemctl添加自定义系统服务