欢迎光临
我们一直在努力

3446. 整数奇偶排序

3446.整数奇偶排序 ⭐️难度:简单 ⭐️类型:排序

📖题目:题目链接 在这里插入图片描述

🌟思路:考察sort函数自定义排序规则

因为自定义函数的两个参数 lhs 和 rhs 不发生交换时,才返回真。 所以要找出 不交换的 情况: 在这里插入图片描述

📚题解:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<vector> // vector不需要.h
#include<list>
#include<set> // // 可以用 set 和 multiset
#include<unordered_set> // 可以用 unordered_set 和 unordered_multimap
#include<map> // 可以用 map 和 multimap
#include<unordered_map> // 可以用 unordered_map 和 unordered_multimap
#include<algorithm>

using namespace std;

bool compare(int lhs, int rhs) {
if (lhs % 2 == 1 && rhs % 2 == 0) { // 左奇右偶,不交换
return true;
}
else if (lhs % 2 == 1 && rhs % 2 == 1 && lhs > rhs) { // 左奇右奇 且 左>右,不交换
return true;
}
else if (lhs % 2 == 0 && rhs % 2 == 0 && lhs < rhs) { // 左偶右偶 且 左<右,不交换
return true;
}
else { // 其余情况全部交换
return false;
}
}

int main() {
int arr[10];
for (int i = 0;i < 10;i++) {
scanf("%d", &arr[i]); // arr + i
}
sort(arr, arr + 10, compare);
for (int i = 0;i < 10;i++) {
printf("%d ", arr[i]);
}
printf("\\n");

return 0;
}

赞(0)
未经允许不得转载:171主机测评 » 3446. 整数奇偶排序
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址