使用枚举算法的简化时间的技巧

本文探讨了在编程问题中如何使用枚举算法有效地解决多变量问题。通过一个工厂工人生产量的例子,展示了如何通过减少循环次数和巧妙设定初始条件,将算法运行时间从203ms降低到67ms。强调在面临时间限制时,优化枚举算法的重要性,鼓励在解题时多观察并减少不必要的循环。
摘要由CSDN通过智能技术生成

相信大家都对枚举算法不陌生吧!

枚举算法:顾名思义,枚举,就是一一列出来,然后找到你所需要的解决方法即可,不过用人脑去算如果需要枚举很多数字,那显然是不划算的,我们可以利用计算机的计算功能很快的解决,但是虽然计算机计算的很快,但是往往在一些算法竞赛中是规定了时间限制和内存限制的,时间限制一般为1000ms

我们来看一道题目:

一个工厂有甲乙丙丁四名工人,他们一共生产了370个产品,恰巧当甲多生产10个,乙少生产20个

 丙生产原来的2倍,丁生产原来的1/2倍,他们四个生产的数量相同,求他们原来各生产多少产品

我们看了一下有四个变量需要求解,那简单啊,四个for循环再用一个if来找出符合条件的解

代码1:

public class DoubleFor {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long start = System.currentTimeMillis();    //计算开始时间
        for(int a = 1;a<=370;a++) {
        	for(int b = 1;b<=370;b++) {
        		for(int c = 1;c<=370;c++) {
        			for(int d = 1;d<=370;d++) {
        				if(a+10 == b-20 && b-20 =&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值