• 数组最小剑指Offer读书笔记之第五章优化时间空间效率


    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

        33、把数组排成最小的数。假设给定数组{3,32,321},则其排成的最小的数就是321323.

        析分:

        由于这里给的数组可能很长,如果用一个特定的类型来放存可能会致使出溢,所以用采字符串来处置。定义一种新的比拟式方,对数组中的数停止序排,然后从小到大输出可即。

        每日一道理
    生活中受伤难免,失败跌倒并不可怕,可怕的是因此而一蹶不振,失去了对人生的追求与远大的理想。没有一个人的前进道路是平平稳稳的,就算是河中穿梭航行的船只也难免颠簸,生活中所遇上的坎坷磨难不是偶尔给予的为难,而是必然所经受的磨练。
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    const int N = 15;
    char GlobalStr1[2*N];
    char GlobalStr2[2*N];
    int compare(const void *a, const void *b)
    {
    	strcpy(GlobalStr1, (char *)a);
    	strcat(GlobalStr1, (char *)b);
    	strcpy(GlobalStr2, (char *)b);
    	strcat(GlobalStr2, (char *)a);
    	return strcmp(GlobalStr1, GlobalStr2);//a在前小,则a小
    }
    int main()
    {
    	int n,i;
    	int arr[N];
    	char str[N][N];
    	while(scanf("%d", &n) != EOF)
    	{
    		for(i = 0; i < n; ++i)
    		{
    			scanf("%d", &arr[i]);
    			sprintf(str[i], "%d", arr[i]);
    		}
    		qsort(str, n, sizeof(char) * N, compare);
    		for(i = 0; i < n; ++i)
    			printf("%s", str[i]);
    		printf("\n");
    	}
    	return 0;
    }

    文章结束给大家分享下程序员的一些笑话语录: 某程序员对书法十分感兴趣,退休后决定在这方面有所建树。花重金购买了上等的文房四宝。一日突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风 范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字:hello world.

  • 相关阅读:
    poj 1113 wall(凸包裸题)(记住求线段距离的时候是点积,点积是cos)
    Atcoder(134)E
    poj 1696 极角排序(解题报告)
    poj 1410 (没做出来,记得闲着没事看看这道题)
    poj1066 线段相交简单应用(解题报告)
    poj 2653 线段相交裸题(解题报告)
    poj 1269
    要习惯用vector代替数组
    在 Angularjs 中$state.go 如何传递参数
    CSS实现内容超过长度后以省略号显示
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3050763.html
Copyright © 2020-2023  润新知