酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++ 揭秘:将 1 到 n 排列变为有序最少移动次数的算法实现

以下是一个使用 C++ 解决此问题的示例代码: ```cpp #include <iostream> #include <vector> int minMoves(std::vector<int>& nums) { int n = nums.size(); int count = 0; for (int i = 0; i < n; ++i) { while (nums[i]!= i + 1) { std::swap(nums[i], nums[nums[i] - 1]); count++; } } return count; } int main() { std::vector<int> nums = {2, 1, 3}; int moves = minMoves(nums); std::cout << "最少移动次数: " << moves << std::endl; return 0; } ``` 在上述代码中,`minMoves` 函数通过不断交换当前位置上数字与它应在位置上数字的位置,直到整个数组变成有序,同时统计交换的次数。在 `main` 函数中给出了示例的输入和输出。 ######[AI写代码神器 | 243点数解答 | 2024-08-17 11:15:03]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]