美文网首页
输入一个正整数和n个有序整数(从小到大),输入一个数试要求按照原

输入一个正整数和n个有序整数(从小到大),输入一个数试要求按照原

作者: 激萌咖啡 | 来源:发表于2018-10-30 14:21 被阅读0次

输入一个正整数和n个有序整数(从小到大),输入一个数试要求按照原来的顺序插入,如果本就存在则删除改数字

package com.rongyu.j2ee;

/**
 * @Description:
 * @Author: rongyu
 * @CreateDate: 2018/10/30$ 12:57$
 * @Remark:
 */
public class Test {
    public static void main(String[] args) {
        int[] ints = new int[]{1, 2, 4, 5};
        int num = 6;
        // 是否存在
        boolean exist = false;
        // 是否大于全部

        // 插入的下标
        Integer index = null;
        for (int i = 0; i < ints.length; i++) {
            if (ints[i] < num) {
                // 小于
                if (i == ints.length - 1) {
                    // 小于但是到最后
                    index = i+1;
                    break;
                }
                continue;
            } else if (ints[i] == num) {
                // 等于
                exist = true;
                index = i;
                break;
            } else {
                //大于 立刻弹出
                index = i;
                break;
            }

        }
        // 最终结果数组
        int[] arr;
        if (exist) {
            // 原数组有 删除
            arr = new int[ints.length-1];
            for (int i = 0; i < ints.length; i++) {
                if(i<index){
                    arr[i] = ints[i];
                }else if(i>index){
                    arr[i-1] = ints[i];
                }
            }
        } else {
            // 原数组没有 添加
            arr = new int[ints.length+1];
            for (int i = 0; i < arr.length; i++) {
                if(i<index){
                    arr[i] = ints[i];
                }else if(i==index){
                    arr[i] = num;
                }else {
                    //大于
                    arr[i] = ints[i-1];
                }
            }
        }

        System.out.println(arr);
    }
}

相关文章

网友评论

      本文标题:输入一个正整数和n个有序整数(从小到大),输入一个数试要求按照原

      本文链接:https://www.haomeiwen.com/subject/padgtqtx.html