题目1:![](https://img-blog.csdnimg.cn/89f9e2dc51dd42c99db4abd788e5b8f3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
int isevenbit(int num)
{
int cnt=0;
while(num)
{
num=num/10;
cnt++;
}
return (cnt%2==0);
}
int findNumbers(int* nums, int numsSize)
{
int ret=0;
for(int i=0;i<numsSize;i++)
{
if(isevenbit(nums[i]))
{
ret++;
}
}
return ret;
}
题目2:![](https://img-blog.csdnimg.cn/f9a8fb914eee4fb087d6ddc2fdd1b26b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
int singleNonDuplicate(int* nums, int numsSize)
{
for(int i=1;i<numsSize;i++)
{
nums[0]=nums[0]^nums[i];
}
return nums[0];
}
题目3:![](https://img-blog.csdnimg.cn/24cd95d4f6414e798e10600988324281.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
//模拟快速排序的思想,利用左右指针
int* exchange(int* nums, int numsSize, int* returnSize)
{
int left=0;
int right=numsSize-1;
while(left<right)
{
while(left<right)
{
if(nums[left]%2!=0)
left++;
else
break;
}
while(left<right)
{
if(nums[right]%2!=1)
right--;
else
break;
}
int tmp=0;
tmp=nums[left];
nums[left]=nums[right];
nums[right]=tmp;
left++; //进行下一次
right--; //进行下一次
}
*returnSize=numsSize;
return nums;
}
题目4:![](https://img-blog.csdnimg.cn/0861a33d06b34834bb8e1ccab68df45e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
//数列和=左边和*2+中间位置值
int findMiddleIndex(int* nums, int numsSize)
{
int total = 0;
for (int i = 0; i < numsSize; ++i)
{
total += nums[i];
}
int sum = 0;
for (int i = 0; i < numsSize; ++i)
{
if (2 * sum + nums[i] == total)
{
return i;
}
sum += nums[i];
}
return -1;
}
题目5:![](https://img-blog.csdnimg.cn/58d215f7522a48749f44d61409bd3d2a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
int pivotIndex(int* nums, int numsSize)
{
int total=0;
for(int i=0;i<numsSize;i++)
{
total+=nums[i];
}
int sum=0;
for(int j=0;j<numsSize;j++)
{
if(sum*2+nums[j]==total)
{
return j;
}
sum+=nums[j];
}
return -1;
}
题目6:![](https://img-blog.csdnimg.cn/11844d16cc5d4aada4de22f8e80b1f78.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
//双指针
/快慢指针;块指针遍历数组,慢指针改变数组
int removeDuplicates(int* nums, int numsSize)
{
if (numsSize == 0)
{
return 0;
}
int fast = 1, slow = 1;
while (fast < numsSize)
{
if (nums[fast] != nums[fast-1])
{
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
题目7:![](https://img-blog.csdnimg.cn/2e8c9e5cb6454bfdab4bee64f24b3882.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
bool* prefixesDivBy5(int* nums, int numsSize, int* returnSize) {
*returnSize = numsSize;
bool* answer = malloc(sizeof(bool) * numsSize);
int sum = 0;
for (int i = 0; i < numsSize; i++)
{
sum = ((sum<< 1) + nums[i]) % 5;
if(sum==0)
answer[i]=1;
else
answer[i]=0;
}
return answer;
}
题目8:![](https://img-blog.csdnimg.cn/f3ef471173424ee798900f9dc124aea3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
int smallestRepunitDivByK(int k)
{
if(k%2==0||k%5==0)
{
return -1;
}
int cnt=1;
int x=1;
while(x%k!=0)
{
x=(x*10+1)%k;
cnt++;
}
return cnt;
}
题目9: ![](https://img-blog.csdnimg.cn/fb313298ae1d49039319217c7a3d3ac1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5b2x5Lit5Lq6bHg=,size_20,color_FFFFFF,t_70,g_se,x_16)
bool checkZeroOnes(char * s)
{
int len=strlen(s);
int cnt1=0;
int cnt2=0;
int sum1=0;
int sum2=0;
for(int i=0;i<len;i++)
{
if(s[i]=='1')
{
cnt2++;
sum2=0;
if(cnt2>cnt1)
{
cnt1=cnt2;
}
}
if(s[i]=='0')
{
sum2++;
cnt2=0;
if(sum2>sum1)
{
sum1=sum2;
}
}
}
return cnt1>sum1?true:false;
}