题解 | 输入整型数组和排序标识,对其元素按照升序或降序进行排序

#2025,我想......# #刷题我是认真的#

解题思路:

  1. 这是一个入门题
  2. 随便使用一个排序算法就可以了,在排序判断是,增加一下排序规则就可以了
  3. 需要注意点是:in.next(),in.nextLine()的区别,否则可能无法读取到数据
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = Integer.parseInt(in.nextLine());
        String[] s = in.nextLine().split(" ");
        int order = in.nextInt();
        for (int i = 0; i < n; i++) {
            int tmp = Integer.parseInt(s[i]);
            int j = i - 1;
            boolean flag;
            while (j >= 0 && customOrder(Integer.parseInt(s[j]), tmp, order)) {
                s[j + 1] = s[j];
                j--;
            }
            s[j + 1] = tmp + "";
        }
        System.out.println(String.join(" ", s));
    }

    public static boolean customOrder(int i, int j, int order) {
        if (order == 0) {
            return i > j;
        }
        return j > i;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-05 19:45
美团 后端 28x15.5+3W签字费 硕士211
点赞 评论 收藏
分享
01-07 16:04
已编辑
腾讯_开发(实习员工)
问题描述:五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: 抽签决定自己的号码(1、2、3、4、5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼 如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人反对时,提案将被废弃,提案者将被扔入大海喂鲨鱼。依此类推 条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。问:第一个海盗提出怎样的分配方案才能使自己的收益最大化?解答:基本的思路是反向推理。由于提案顺序是抽签已经确定的&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;5号依次提案,而提出失败提案的人回被扔掉喂鱼。一。我们不妨先看假如只剩下了4&nbsp;5两个人,那么由于超过一半的人同意才能成功,那么这时候4号肯定提出100:0的分配方案,那么5号肯定不干了,所以5号是全部否决前3人的提案的。二。那么现在看剩下3&nbsp;4&nbsp;5这三个人的情况,3号只需要提出给5号一个宝石就能成功,因此3号会提出99:0:1的提案,那么这时候4号肯定不会同意的,他就会支持1&nbsp;2号的提案。三。现在看剩下2&nbsp;3&nbsp;4&nbsp;5这四个人的情况,由于4号肯定不希望来到二中的情景,所以2号给4号一个宝石,4号就会同意2号提案,而3号是无论如何都希望2号被喂鱼的,所以不给3号宝石,现在2号要做的就是争取5号同意,而争取5号同意,只需要给他2个宝石即可。因此2号的方案是97:0:1:2四。现在看1&nbsp;2&nbsp;3&nbsp;4&nbsp;5这几种都在的情况,由于3号如果不同意1号的话,他自己啥也得不到,因此1号给3号1个宝石,3号就会同意,1号给4号2个宝石4号也会同意,因此1号的分配方案是97:0:1:2:0所以综上所述,1号能获得97个宝石,分配比为97:0:1:2:0ps.这是一道很经典的智力题,智力题我认为除非你智商超群,否则没见过基本不可能在面试的短时间内想出来正确答案。这道题一开始是微软面试问的,然后最近发现字节有几个部门喜欢问这个题,于是记录下来。#牛客激励计划##牛客AI配图神器#
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务