a_Yogurt 2022-08-17 18:02 采纳率: 50%
浏览 74
已结题

关于#华为od机考#的问题,如何解决?

华为od机考 第一道题
输入k,输出所有结果小于k的整数组合到一起的最少交换次数。组合一起是指符合条件的数字相邻,不是在数组位置相邻。

img

不算难,但我有些不理解题目,导致第一个样例的情况,没能全部通过用例,只通过了47%。这个题目该怎么理解?

当时提交的代码:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.nextLine();
            String[] arr = str.split(" ");
            int k = sc.nextInt();
            int x = 0;
            int d = 0;
            for(int i = 0; i < arr.length; i++){
                int n = Integer.parseInt(arr[i]);
                if(n < k){
                    x++;
                }
                if (n >= k) {
                    d++;
                }
            }
            if(x == arr.length || d == arr.length){
                System.out.println(0);
            }else if(x > 0){
                System.out.println(1);  //这个就乱写了
            }

        }
    }
}


  • 写回答

1条回答 默认 最新

  • 有老虎 2022-08-18 14:44
    关注

    我的思路是构建一个满足条件结果个数长度的队列,将数组通过这个队列遍历一遍,记录这个队列里不满足条件的最小个数,这就是最少需要交换的次数了,代码实现的话有很多可以优化的点,你可以自己试一试

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月22日
  • 修改了问题 4月22日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 Kettle 抽取Excel转换问题
  • ¥15 ubuntu 20.04 网卡启用后,只有ipv6 没有 ipv4 无法上网
  • ¥15 QT任务管理器无法正确获取展开,有悬赏15元速求,如何解决?(相关搜索:标识符|结构体)
  • ¥15 使用delphi 10.3+intraweb 生成的页面怎么实现自动滚屏
  • ¥20 思科:Router c3600 MN-4E插槽
  • ¥15 16进制修改视频的元数据
  • ¥15 HTML中css的位置信息居然会导致元素大小发生变化
  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动