美文网首页
给定的队列按起始值排序

给定的队列按起始值排序

作者: heheworld | 来源:发表于2018-11-04 22:59 被阅读0次

问题,给定一个无序队列,【value1,value2,value3,value4,value5】

value 数据结构如下:

    class Arrayentity {
        int start;
        int end;

        public Arrayentity() {
        }

        public Arrayentity(int start, int end) {
            this.start = start;
            this.end = end;
        }

        @Override
        public String toString() {
            return "[start:" + start + " end:" + end + "]";
        }
    }

给定队列如下:

public void initData() {


        Arrayentity a1 = new Arrayentity(1, 4);
        Arrayentity a2 = new Arrayentity(2, 6);
        Arrayentity a3 = new Arrayentity(7, 12);
        Arrayentity a4 = new Arrayentity(14, 19);
        Arrayentity a5 = new Arrayentity(22, 40);

        arrayentityList.add(a1);
        arrayentityList.add(a2);
        arrayentityList.add(a3);
        arrayentityList.add(a4);
        arrayentityList.add(a5);

    }

要求输出为:

[start:1 end:6]
[start:7 end:12]
[start:14 end:19]
[start:22 end:40]

我是这么写的

public void sort() {

        List<Arrayentity> newlist = new ArrayList<>();
        boolean needskip = false;
        List<Arrayentity> resultlist = new ArrayList<>();
        for (int i = 0; i < arrayentityList.size(); i++) {


            if (needskip) {
                needskip = false;
                continue;
            }
            Arrayentity arrayentity = new Arrayentity();
            resultlist.add(arrayentityList.get(i));
            for (int j = i + 1; j < arrayentityList.size(); j++) {
                if (arrayentityList.get(i).end >= arrayentityList.get(j).start) {

                    resultlist.remove(arrayentityList.get(i));
                    arrayentity.start = arrayentityList.get(i).start;
                    arrayentity.end = arrayentityList.get(j).end;
                    needskip = true;
                } 
            }

            if (arrayentity.start != 0 && arrayentity.end != 0) {
                resultlist.add(arrayentity);
            }

        }


        for (Arrayentity arrayentity : resultlist) {
            Log.e(TAG, "result  " + arrayentity.toString());
        }
    }

相关文章

  • 给定的队列按起始值排序

    问题,给定一个无序队列,【value1,value2,value3,value4,value5】 value 数据...

  • Swift 字典排序: 按Key排序和按Value排序

    使用sorted方法1、值是给定的 2、值是未知的 扩展: 按Key排序和按Value排序

  • JUC下的阻塞队列-LinkedBlockingQueue

        LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素...

  • 无题

    LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新元素...

  • Excel实现数据按给定顺序排序

    相信大家在Excel使用过程中肯定遇到过这种需求,就是想让一组数据按照给定的顺序来进行排序,而不是简单地按升降序来...

  • 实现ArrayBlockingQueue

    定义 一个由数组支持的有界阻塞队列。此队列按FIFO(先进先出)原则对元素进行排序。队列的头部是在队列中存在时间最...

  • 有序数组的平方

    题目: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例: ...

  • 2021-05-20 dplyr包使用——排序:arrange函

    arrange()按给定的列名依次对行进行排序,类似于base::order()函数。默认是按照升序排序,对列名加...

  • [LeetCode][Python]977. 有序数组的平方

    给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入...

  • LeetCode-977-有序数组的平方

    给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。image.png...

网友评论

      本文标题:给定的队列按起始值排序

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