从别处看到的一道算法附加题

题目:已知一个数组a[N],构造一个数组b[N],构造规则:b[i]=a[0]*a[1]*a[2]...a[N]/a[i];
  要求:
     1、不可以使用除法;
     2、时间复杂度为O(n),空间复杂度为S(0);
     3、除遍历使用的变量外,不可以使用其它变量;

 

自己的解法虽然不合题意,终究是自己想的,但是极力只用1个.可以使用遍历变量我就无耻的把他当作遍历变量吧,空间复杂度就无法满足了使用递归的话.......

       思路很简单:递归到最后一个元素过程中边计算之前的数字乘法积,然后记录后面元素乘积和.

       //r1 :用来记录index后的元素乘积

       //r2 :index之前的元素的乘积

      //index:当前所处的元素的索引号 

       static void Fun(int[] a, int[] b, int index, ref int r1, int r2)

       个人觉得解法比较精炼,所以贴出来,给自己做个记录.

      

 1  class Program
 2     {
 3          static  void Fun( int[] a,  int[] b,  int index,  ref  int r1,  int r2)
 4         {
 5              if (index == b.Length -  1)
 6             {
 7                 b[index] = r2;
 8                 r1 = a[index];
 9                  return ;
10             }
11             r1 =  1;
12             Fun(a, b, index +  1, ref r1, r2 * a[index]);
13             b[index] = r2 * r1;
14             r1 = a[index] * r1;
15         }
16 
17 
18 
19          static  void Main( string[] args)
20         {
21              int[] a =  new  int[ 11];
22              int[] b =  new  int[a.Length];
23              int total =  1;
24              for ( int i =  0; i < a.Length; i++)
25             {
26                 a[i] = i +  1;
27                 total *= (i +  1);
28             }
29              // Console.WriteLine(total);
30               int r1 =  1;
31              int r2 =  1;
32             Fun(a, b,  0ref r1, r2);
33              for ( int i =  0; i < b.Length; i++)
34             {
35                 Console.WriteLine(b[i] +  " = " + total / a[i]);
36             }
37             Console.ReadLine();
38         }
39 
40 
41     }

 

转载于:https://www.cnblogs.com/hql1988/archive/2012/05/11/2496499.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值