记录一些简单的暴力破解法带来的思考,基于刘佳汝的书籍例题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
一步一步拆解问题