题目 242
bool isAnagram(char* s, char* t) {
int m=strlen(s);
int n=strlen(t);
if(m!=n) return false;
int hash[26]={0};
for(int i=0;i<m;i++){
hash[s[i]-‘a’]++;
}
for(int i=0;i<n;i++){
hash[t[i]-‘a’]–;
}
for(int i =0;i<26;i++){
if(hash[i]!=0){
return false;
}
}
return true;
}
题目:349
/**
-
Note: The returned array must be malloced, assume caller calls free().
/
int intersection(int* nums1, int nums1Size, int* nums2, int nums2Size,int* returnSize) {
int hash[1000]={0};
int lessSize = nums1Size < nums2Size ? nums1Size : nums2Size;
int *intersection=(int *)calloc(lessSize,sizeof(int));
int j=0;
for(int i=0;i<nums1Size;i++){
hash[nums1[i]]=1;
}
for(int i=0;i<nums2Size;i++){
if(hash[nums2[i]]==1){
intersection[j]=nums2[i];
j++;
hash[nums2[i]]=0;}
}
*returnSize=j;
return intersection;
}
题目 202
/计算的过程函数,我没重点讲,很简单看一下代码就好了
int getSum(int n) {
int sum = 0;
while (n) {
sum += (n % 10) * (n % 10);
n /= 10;
}
return sum;
}
bool isHappy(int n){
int sum = getSum(n);
int hash[820] = {0};
while (sum != 1) {
if (hash[sum] == 1) {
return false;
} else {
hash[sum]++;
}
sum = getSum(sum);
}
return true;
}
题目1
/**
-
Note: The returned array must be malloced, assume caller calls free().
/
int twoSum(int* nums, int numsSize, int target, int* returnSize) {for(int i=0;i<numsSize;i++){
for(int j=i+1;j<numsSize;j++){
if(nums[i]+nums[j]==target){
int *ret=malloc(sizeof(int)*2);
ret[0]=i;
ret[1]=j;
*returnSize=2;
return ret;} }
}
*returnSize=0;
return NULL;
}