[技术| 编程·课件·Linux] 一个简单的题目,大家练练手,

wljyy521 · 发布于 2012-08-09 22:35 · 1305 次阅读
8
就是给你一个整型数组,然后让你找出其中的连续几个数的和与一个给定的数的差最小的那几个数,其中这里面的差不考虑负数,也就是说差是这样定义的:1)如果和比这个数大,那么差就是和减去这个数,2)如果和比这个数小的话,就是这个数减去和,就是使得这样的差最小的那个数组中连续的几个数
比如说:{6,8,14,3,4,7}和24比较,那么最小的差是 1 ,这几个连续打的数是:8  14 3
大家可以练练手,不要时间长了,手生疏了,呵呵,大家在下面跟上自己的代码:看看谁的想法好
共收到 1 条回复
owen · #2 · 2012-9-17 20:57:39  回复 支持 反对
最普通的解法,二层循环,简单写了一下代码如下。   
private static void ArrayAdd(){
        int result = Math.abs(toSearch[0]-24);
        for(int i=0; i<n; i++){
              int add = 0;
              for(int j=i; j<n; j++){
              add += toSearch[j];
              result = Math.min(Math.abs(add-24), result);
              }     
        }
        System.out.println(result);
  }
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表