本周题目难度级别"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 | 自信、需要挑战权威、逻辑推理、讲故事的能力 | 无条件支持者、发现孩子的意愿 |
对待老人
一个字:顺
处理工作纠纷:
先处理情绪、再处理事件
- 信息传送的是否清楚正确
- 对方有何感觉、潜在用词是否真诚
对待上级:
尊重而不放纵
对待下级:
邀请而非要求
对待夫妻:
分享而非教导
还有很多,没时间整理了。。。
网友评论