zoukankan      html  css  js  c++  java
  • 记录一些简单的暴力破解法带来的思考,基于刘佳汝的书籍例题7.1~7.5

    例题7-1:

    输入正整数n,按从小到大的顺序输出所有形如abcde / fghij = n 的表达式,其中a~j恰好为0~9的一个全排列(可以有前导0),2 <= n <= 79。

    思考:

    设M / N = n

    这道题在做的时候的一个细节没有走最优化的路线导致我的算法较为卡顿,原因是没有反向思考问题。我一直想的是遍历M,再根据M求的N的组成数字,再来便利N的所有可能取值,而最优化的方式却是:便利N(N的范围较小),再根据N和n求的这种情况下的M,再把(M,N)带入一个函数检查其是否用完了0~9.

    如果直接求的某种个值麻烦的时候想一想有没有简单的方式来做。

    例题7-2:

    找出一个n个元素组成的序列S的乘积最大的连续子序列,如果全部是负数则输出0。(1 <= n <= 18, -10 <= S <= 10)

    思考:

    很简单的遍历,i为起点,j为终点,i从0到n-1,j从i到n-1.唯一要小心的是数值的范围可能超过int(int:2.1 * 10^9,long:9.2*10^18)。

    例题7-3:

    分数拆分

    先简化问题,优化思路再开始编写。

    例题7-4

    素数环

    记得cur的重要意义。

    例题7-5

    一步一步拆解问题

  • 相关阅读:
    管理之道
    Swagger-editor安装启动及错误处理,注意事项
    装箱 拆箱 枚举 注解 多态
    Spring Security 内置过滤器表
    Spring Boot入门 and Spring Boot与ActiveMQ整合
    消息中间件解决方案JMS
    网页静态化解决方案-Freemarker demo+语法
    spring-data-radis错误
    java基础总结
    swift oc 混编的头文件
  • 原文地址:https://www.cnblogs.com/dsj2016/p/5255363.html
Copyright © 2011-2022 走看看