就写俩题
文章目录
目录
零、写在前面
本章主要讲述了,计数排序的方法
https://bbs.csdn.net/topics/603540752https://bbs.csdn.net/topics/603540752每天会开启一篇试读文章,每日坚持打卡就可以一直白嫖哦
一、有效的字母异位词
1.题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
2.解题
思路;循环用has标记俩数组的数,然后循环找俩has的不同
bool isAnagram(char * s, char * t){
int has1[300]={0}; //两个has数组分别标记s和t中的字符
int has2[300]={0};
int lens=strlen(s); //计算俩字符串的长度,不同直接返回false
int lent=strlen(t);
if(lens!=lent){
return 0;
}
for(int i=0;i<lens;++i){ //标记
has1[s[i]]++;
has2[t[i]]++;
}
for(int j=0;j<300;j++){
if(has1[j]!=has2[j]){ //循环找不同,返回false
return 0;
}
}
return 1;
}
3.结果
二、
1.题目
2.解题
3.结果
三、丢失的数字
1.题目
给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。
示例 1:
输入:nums = [3,0,1]
输出:2
解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。
2.解题
思路;计数器计数,看哪个数没出现过
int missingNumber(int* nums, int numsSize){
int cnt[10001]; //根据题中给的数据范围,定义计数器的大小
memset(cnt,0,sizeof(cnt)); //初始化计数器
int i;
for(i=0;i<numsSize;++i){
cnt[nums[i]]++; //出现的数据使计数器加一
}
for(i=0;i<10000;++i){
if(cnt[i]==0){ //没出现过 计数器就是0
return i;//返回这个数
}
}
return 0; //没啥用,
}
3.结果
四、
1.题目
2.解题
3.结果
五、
1.题目
2.解题
3.结果