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

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!