美文网首页
每周一道算法题(三十六)&一些笔记

每周一道算法题(三十六)&一些笔记

作者: CrazySteven | 来源:发表于2017-11-26 23:29 被阅读241次

    本周题目难度级别"Meidum",使用语言C

    题目:和上周一样给你一组数让你求出全排列,不同的是,上周给你的一组数是不重复的,这周给你的数是重复的。

    思路:先简单的把上周的算法拿来用,然后求出的结果进行去重,下面只写去重代码(配合上周的一起看吧):

     //去重
        int** newResult = malloc(sizeof(int*) * *returnSize);
        for (int i = 0; i < *returnSize; i++) {
            newResult[i] = malloc(sizeof(int) * numsSize);
        }
        int index = 0;
        //拿一个出来
        for (int i = 0; i < *returnSize-1; i++) {
            int stop = 0;
            //和后面的比
            for (int j = i+1; j < *returnSize;j++) {
                stop = 0;
                //对比每一项
                for (int k = 0;k < numsSize; k++) {
                    if (result[i][k] == result[j][k]) {
                        stop++;
                    }else break;
                }
                //如果每一项都相等
                if (stop == numsSize) {
                    stop = -1;
                    break;
                }
            }
            if (stop != -1) {
                newResult[index] = result[i];
                index++;
            }
        }
        newResult[index] = result[*returnSize-1];
        *returnSize = index+1;
        return newResult;
    

    当然,我在去重的前面做了个判断,如果结果只有一个,那就不用进行去重了,直接返回result。最近实在太忙了,思路也有,等有时间再回头搞吧,上面的代码也能通过测试,效率较低,不推荐。
    这周学习了些哲学、心理学的东西,受益颇深,一并列出吧:


    对待孩子

    年龄 需要培养孩子的能力 父母的角色
    0~3 安全感 保育员
    3~6 自立、人际交往 老师
    6~12 逻辑思维 辅导员
    12~16 自信、需要挑战权威、逻辑推理、讲故事的能力 无条件支持者、发现孩子的意愿

    对待老人

    一个字:顺

    处理工作纠纷:

    先处理情绪、再处理事件

    • 信息传送的是否清楚正确
    • 对方有何感觉、潜在用词是否真诚

    对待上级:

    尊重而不放纵

    对待下级:

    邀请而非要求

    对待夫妻:

    分享而非教导

    还有很多,没时间整理了。。。

    版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

    相关文章

      网友评论

          本文标题:每周一道算法题(三十六)&一些笔记

          本文链接:https://www.haomeiwen.com/subject/ixalbxtx.html