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

本周题目难度级别"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 原创出品,欢迎转载,转载时请注明出处!

你可能感兴趣的:(每周一道算法题(三十六)&一些笔记)