赞
踩
1、将遍历值对应的下标值变为负数,其中如果遍历值对应的下标值本就是负数,则不作改变
2、遍历返回大于0的数下标
- /**
- * Note: The returned array must be malloced, assume caller calls free().
- */
- int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){
- int *ans=malloc(sizeof(int)*numsSize);
- *returnSize = 0;
- int temp;
- for(int i = 0; i < numsSize; i++)
- {
- if(nums[i] < 0)
- {
- temp = nums[i]*(-1) - 1;
- }
- else
- {
- temp = nums[i]-1;
- }
-
- if(nums[temp]>0)
- {
- nums[temp] *= (-1);
- }
-
-
- }
- for(int i = 0;i < numsSize;i++)
- {
- if(nums[i] > 0)
- {
- ans[(*returnSize)++] = i+1;
-
- }
- }
- return ans;
- }
1、先排序,定义一个计数变量temp
2、两重for循环,判断g[i]是否小于等于s[j]
3、若g[i]小于等于s[j],则temp加一,s数组开始遍历值变为j+1(防止重复判断多加);
- int cmp(const void *x,const void *y)
- {
- return *(int*)x-*(int*)y;
- }
- int findContentChildren(int* g, int gSize, int* s, int sSize) {
- int temp=0;
- int m=0;
- qsort(g,gSize,sizeof(int),cmp);
- qsort(s,sSize,sizeof(int),cmp);
- for(int i = 0;i<gSize;i++)
- {
- for(int j = m;j<sSize;j++)
- {
- if(g[i] <= s[j])
- {
- temp++;
- m = j+1;
- break;
- }
-
- }
- }
-
- return temp;
- //return 1;
-
- }
1、定义计数变量temp和存储temp最大数的变量n
2、遍历判断,为1 temp++;不为1,temp 置0
3、返回n
- int cmp(const void *x,const void *y)
- {
- return *(int*)x-*(int*)y;
- }
- int findContentChildren(int* g, int gSize, int* s, int sSize) {
- int temp=0;
- int m=0;
- qsort(g,gSize,sizeof(int),cmp);
- qsort(s,sSize,sizeof(int),cmp);
- for(int i = 0;i<gSize;i++)
- {
- for(int j = m;j<sSize;j++)
- {
- if(g[i] <= s[j])
- {
- temp++;
- m = j+1;
- break;
- }
-
- }
- }
-
- return temp;
- //return 1;
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。