求列表中小于10的非负整数经过K次变换连成数字的最大值

题目大意:数组或列表存储小于10的非负整数,经过K次数组相邻位置元素变换(必须是K次),求连城的数字的最大值

如 int array ={0,1,3,2}经过K=1变换,最大值为1032;经过K=2次变换代表的最大值3012;

输入:

第一行T,表示输入的测试用例次数;

第二行K,表示经过的变换次数;

第三行N,表示数组的长度;

第四行是输入数组里的值,以空格间隔;

后面是K和N的以及数组数字输入的交替。

输出:交换后的数组串

例:

输入:
 

4

2

5

4 2 1 3 5

3

5

4 2 1 3 5

4

5

4 2 1 3 5

5

5

4 2 1 3 5

输出:
 

4 3 2 1 5

4 5 2 1 3

5 4 2 1 3

5 4 2 3 1 

解题思路:

从列表的最左侧开始遍历,遍历K此,首先判断第一位是否是0至第K为数字的最大值,是的话就不变,移植下一位。如果不是最大值,找出最大值的位置,减去当前判断数字的位置,c =(最大值的位置 - 当前判断数字的位置),K=K-c为剩下交换的次数,然后从最

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值