创建一个接受整数数组的方法,该数组填充元素之间缺少的数字

时间:2017-12-12 05:07:15

标签: java arrays

例如,如果数组中的第一个插槽是2并且数组中的第二个插槽是6,那么如果传入方法的数组是,则必须在2和6之间插入3,4,5。 {2,4,8,3}该方法将返回数组{ 2 ,3, 4 ,5,6,7, 8 ,7,6,5,4, 3 }(粗体数字是原始数组中的值)。到目前为止,这就是我所拥有的,我只是想知道我是否正确地接近它。我知道我想要做什么,但我似乎无法将其放入代码而不会出现数组越界错误。请注意,我是编码的新手,我将非常感谢任何需要时间来帮助我的人。谢谢。我知道我需要知道每个元素之间的所有差异。示例{2,5}缺少3和4差异= 2.然后将差异添加到具有原始数组长度的新数组。这是我目前对这个问题的尝试。

public static int [] fillArray(int x[]){

    int max_diff = x[1] - x[0];
    int i, j;
    int counter = 0;
    for (i = 0; i < x.length; i++) 
    {
        for (j = i + 1; j < x.length; j++) 
        {
            if (x[j] < x[i] ){
              x[i] = x[i] - x[j];
                System.out.println(x[j]);
            }else if(x[j] > x[i]){


            }
        }
    }

    return x;

}

2 个答案:

答案 0 :(得分:0)

根据您提供的示例,我编写了一个将填充缺失值的程序,由于其动态大小,我使用Array来保留缺失值而不是public class cn { public static ArrayList<Integer> fillArray(int x[]){ ArrayList<Integer> al = new ArrayList(); for(int i=0;i<x.length-1;i++) { if(x[i]-x[i+1]<0) { for(int j=x[i];j<=x[i+1];j++) { if(al.size()!=0){ if((al.get(al.size()-1))==j){ //al.add(j); } else al.add(j); } else { al.add(j); } } } else{ for(int j=x[i+1];j>=x[i];j--) { if(al.size()!=0){ if((al.get(al.size()-1))==j){ //al.add(j); } else al.add(j); } else { al.add(j); } } } } if(x[x.length-2]-x[x.length-1]<0) { for(int j=x[x.length-2];j<=x[x.length-1];j++) { //al.add(j); if((al.get(al.size()-1))==j){ //al.add(j); } else al.add(j); } } else { for(int j=x[x.length-2];j>=x[x.length-1];j--) { //al.add(j); if((al.get(al.size()-1))==j){ //al.add(j); } else al.add(j); } } return al; } public static void main(String[] args) { int y[]={2,4,8,3}; ArrayList<Integer> b = fillArray(y); for(Integer c : b) { System.out.println(c); } } }

from bs4 import BeautifulSoup
string = """<p>paragraph1 paragraph1 <em>paragraph1</em> paragraph1</p>
        <p>paragraph2 paragraph2 paragraph2 paragraph2</p>"""    
string = BeautifulSoup(string,"lxml")
string.em.unwrap()
result = string.get_text(separator = "\n")
print(result)

答案 1 :(得分:0)

这是带有方法乐趣的程序,可以使用ArrayList解决您的问题。应该做的伎俩;)

import java.util.ArrayList;
import java.util.List;

public class Main {

public static void main(String[] args){
    int[] abc = {2, 4, 8, 3};

    Integer[] result = fun(abc);
    for(Integer i : result){
        System.out.print (i + " ");
    }
    return;
}

public static Integer[] fun(int[] abc){
    List<Integer> list = new ArrayList<Integer>();
    for(int i = 0; i<abc.length-1; i++){
        int a1 = abc[i];
        int a2 = abc[i+1];
        if(a1<a2){
            for(; a1<a2; a1++){
                list.add(a1);
            }
        }else if(a1>a2){
            for(; a2<a1; a1--){
                list.add(a1);
            }
        }


    }
    list.add(abc[abc.length-1]);
    Integer[] result = new Integer[list.size()];
    result = list.toArray(result);
    return result;
}

}