当前位置: 首页 > news >正文

把数组排成最小的数-C++

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程https://www.captainai.net/troubleshooter

// 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个。例如输入数组{3, 32, 321},则打印出这3个数 // 字能排成的最小数字321323。 #include "cstdio" #include <string> #include <algorithm> int compare(const void *strNumber1, const void *strNumber2); // int型整数用十进制表示最多只有10位 const int g_MaxNumberLength = 10; char *g_StrCombine1 = new char[g_MaxNumberLength * 2 + 1]; char *g_StrCombine2 = new char[g_MaxNumberLength * 2 + 1]; void PrintMinNumber(const int *numbers, int length) { if (numbers == nullptr || length <= 0) return; char **strNumbers = (char **)(new int[length]); for (int i = 0; i < length; ++i) { strNumbers[i] = new char[g_MaxNumberLength + 1]; sprintf(strNumbers[i], "%d", numbers[i]); } qsort(strNumbers, length, sizeof(char *), compare); for (int i = 0; i < length; ++i) printf("%s", strNumbers[i]); printf("\n"); for (int i = 0; i < length; ++i) delete[] strNumbers[i]; delete[] strNumbers; } // 如果[strNumber1][strNumber2] > [strNumber2][strNumber1], 返回值大于0 // 如果[strNumber1][strNumber2] = [strNumber2][strNumber1], 返回值等于0 // 如果[strNumber1][strNumber2] < [strNumber2][strNumber1], 返回值小于0 int compare(const void *strNumber1, const void *strNumber2) { // [strNumber1][strNumber2] strcpy(g_StrCombine1, *(const char **)strNumber1); strcat(g_StrCombine1, *(const char **)strNumber2); // [strNumber2][strNumber1] strcpy(g_StrCombine2, *(const char **)strNumber2); strcat(g_StrCombine2, *(const char **)strNumber1); return strcmp(g_StrCombine1, g_StrCombine2); } // ====================测试代码==================== void Test(const char *testName, int *numbers, int length, const char *expectedResult) { if (testName != nullptr) printf("%s begins:\n", testName); if (expectedResult != nullptr) printf("Expected result is: \t%s\n", expectedResult); printf("Actual result is: \t"); PrintMinNumber(numbers, length); printf("\n"); } void Test1() { int numbers[] = {3, 5, 1, 4, 2}; Test("Test1", numbers, sizeof(numbers) / sizeof(int), "12345"); } void Test2() { int numbers[] = {3, 32, 321}; Test("Test2", numbers, sizeof(numbers) / sizeof(int), "321323"); } void Test3() { int numbers[] = {3, 323, 32123}; Test("Test3", numbers, sizeof(numbers) / sizeof(int), "321233233"); } void Test4() { int numbers[] = {1, 11, 111}; Test("Test4", numbers, sizeof(numbers) / sizeof(int), "111111"); } // 数组中只有一个数字 void Test5() { int numbers[] = {321}; Test("Test5", numbers, sizeof(numbers) / sizeof(int), "321"); } void Test6() { Test("Test6", nullptr, 0, "Don't print anything."); } int main(int argc, char *argv[]) { Test1(); Test2(); Test3(); Test4(); Test5(); Test6(); return 0; } // ------ Output ------ /* Test1 begins: Expected result is: 12345 Actual result is: 1245�a`5 Test2 begins: Expected result is: 321323 Actual result is: 32132�a`5 Test3 begins: Expected result is: 321233233 Actual result is: 32123323�a`5 Test4 begins: Expected result is: 111111 Actual result is: 11111�a`5 Test5 begins: Expected result is: 321 Actual result is: 321 Test6 begins: Expected result is: Don't print anything. Actual result is: */
http://www.jsqmd.com/news/713327/

相关文章:

  • Windows蓝屏0xE6?别慌,手把手教你用WinDbg分析DRIVER_VERIFIER_DMA_VIOLATION
  • 3个步骤解锁Switch终极潜能:大气层系统完整安装与使用指南
  • MouseClick鼠标连点器:智能化跨平台自动化解决方案深度解析
  • 从零到上手:用SmartBI V10.x实战演练数据可视化全流程(附自助仪表盘与大屏制作避坑指南)
  • 告别网盘限速:LinkSwift直链下载工具终极指南
  • 终极FF14过场动画跳过插件:3分钟快速上手完整指南
  • 摄像机标定
  • 快速体验胶片质感AI绘画:FLUX.1-Krea真实感模型部署与试用
  • 别再被PyTorch的checkpoint坑了!深入state_dict,彻底搞懂参数组匹配问题
  • 3行命令搞定抖音批量下载:douyin-downloader无水印视频下载终极指南
  • 如何实现跨平台设备无缝发现?LocalSend零配置识别技术全解析
  • 2025最权威的六大AI学术助手推荐
  • DesktopNaotu:你的终极跨平台离线思维导图解决方案
  • Windows Cleaner:3分钟告别C盘爆红,让你的电脑重获新生!
  • STM32低功耗实战:用PWR模块让你的电池供电设备续航翻倍(附代码)
  • 告别文献翻译烦恼:Zotero PDF Translate让你的科研效率提升3倍
  • 3步告别激活烦恼:KMS智能激活工具完全指南
  • 亲测可用 免费使用 云远程调试软件V2.1.0 远程串口调试 远程网口调试
  • 当Windows 10成为“负重者“:一个命令行工具如何帮你夺回系统控制权
  • 病理科医生的数字助手:如何用QuPath免费软件高效标注与分析WSI切片(实战分享)
  • 3分钟极速安装:Android Studio中文语言包完整指南
  • 探索 Yew 生态系统:构建高效 Rust Web 应用的完整工具链指南
  • 手把手教你为ZYNQ项目添加自定义PWM:基于AXI Timer的PL引脚配置与波形调试实录
  • 如何在5分钟内免费搭建OBS RTSP服务器:完整配置指南
  • 别再只会改lr了!详解PyTorch中optimizer.param_groups的动态调整技巧
  • KMS_VL_ALL_AIO:3分钟完成Windows系统激活的终极智能解决方案
  • 2026-04-28:能被 3 整除的三元组最大和。用go语言,在数组 nums 中挑选出恰好三个数,使得这三个数的总和可以被 3 整除。 要求计算所有满足条件的三元组里,它们的三个数之和所能达到的最
  • signal核心功能详解:钢琴卷帘、编曲视图与速度控制完整指南
  • 别再傻傻分不清:PDI-CE 9.4.0.0-343 和 Pentaho Server CE 到底该下哪个?
  • 进程的状态