weixin_44100863 2019-09-27 13:51 采纳率: 0%
浏览 163

请使用基于JVM的语言解决下列问题,尽可能考虑执行效率与代码整洁度:

2.
问题:
小明在一家服装店工作。他有一大堆袜子,但他必须按颜色配对出售。
给定一组表示每个袜子颜色的整数,确定有多少对具有匹配颜色的袜子。
例如,有7只带有颜色的袜子,分别是 [1,2,1,2,1,3,2]。有一双带有颜色1的袜子,和一双带有颜色2的袜子,最后剩下三个落单的袜子,所以最后有2双成对的袜子。
输入格式:
第一行包含一个整数,表示袜子只数。第二行包含空格分隔的整数,用于描述每只袜子的颜色。
输出格式:
返回可以出售的成对袜子的总数。
样本输入
9
10 20 20 10 10 30 50 10 20
样本输出
3
答案:

3.
问题:
给定一个整数数组,确定是否可以仅使用以下操作之一按升序对数组完成排序:
1. 交换两个元素。
2. 反转一个子数组。
如果仅使用两个操作中的任意一个都能完成排序,则选择第一项操作:交换两个元素。
例如,给定一个数组 [2,3,5,4],交换元素5和元素4的位置,或者逆转子数组A[3..4],都能达成目标,则选择交换元素5和元素4的位置。
输入格式:
第一行包含一个整数,表示数组大小。第二行包含空格分隔的整数,为数组中的元素。
输出格式:
1. 如果数组已经排序,则在第一行输出yes。不需要输出其他内容。
2. 如果可以使用一个操作(来自两个允许的操作)对此数组进行排序,则在第一行输出yes,然后:
a. 如果操作为交换两个元素,A[l]和A[r],则在第二行输出 swap l r,l和r为元素在数组中的下标,假设数组下标从 1 到 n。
b. 如果操作为反转一个子数组,A[l..r],则在第二行输出 reverse l r,l和r为元素在数组中的下标,假设数组下标从 1 到 n。
注意:如果操作a、b都能对数组进行排序,则选择操作a。
3. 如果无法以任何方式对数组进行排序,请在第一行输出no。

样本输入1
3
3 1 2
样本输出1
no

样本输入2
6
1 5 4 3 2 6
样本输出2
yes
reverse 2 5
答案:

  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2019-09-27 14:20
    关注

    实现思路:基于 JVM 的语言,可以选 Java。
    需求已经限定了数据结构,使用数组,通过反转或交换数组元素完成排序。
    而排序算法又有很多种,可以选择最简单的冒泡排序。

    评论

报告相同问题?

悬赏问题

  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件