京东笔试第二题思路

不知道对不对,反正我按这个做法a了。
1、如果最大的数就在第奇数个位置上,那就不需要方法一
2、如果第二大的数就在第偶数个下标处,那也不需要方法一
3、依次类推,若每个数的大小排序(第几大),都和原本在数组中的下标,奇偶相对应,就完全不用方法一。
4、每有一对不在对应奇数/偶数下标处的,一次方法一就能换回到正确的位置上。

代码思路:用一个TreeMap存< 大小,数组下标  >,遍历这个map就能判断每个数是不是在自己该在的奇数/偶数下标处。不是就count+1。
最后count/=2就可。
全部评论
这份代码过了100%,我自己都不知道为啥能过。你研究研究什么原理,记得告诉我一声 nums = [] n = int(input()) for i in range(n): num = int(input()) nums.append([num, i]) nums = sorted(nums, key=lambda x : x[0]) # print(nums) ans = 0 for i in range(n): ans += 1 if (nums[i][1] - i) % 2 == 1 else 0 print(ans//2)
1 回复 分享
发布于 2024-08-31 14:08 黑龙江
每次使用操作1,不会有两个数的奇偶就发生变化了吗?这样算的话,不用考虑使用操作1之后的数字变化吗?😭没懂
点赞 回复 分享
发布于 2024-08-31 13:24 陕西
我也是这么做的
点赞 回复 分享
发布于 2024-08-31 12:55 上海

相关推荐

不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务