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。
    需求已经限定了数据结构,使用数组,通过反转或交换数组元素完成排序。
    而排序算法又有很多种,可以选择最简单的冒泡排序。

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序