南联网站建设公司,制作书签图片大全简单漂亮,php做调查问卷网站,网站开发外包维护合同范本三十一、 747. 至少是其他数字两倍的最大数 给你一个整数数组 nums #xff0c;其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是#xff0c;则返回 最大元素的下标 #xff0c;否则返回 -1 。 示例 1其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是则返回 最大元素的下标 否则返回 -1 。 示例 1 输入nums [3,6,1,0]
输出1
解释6 是最大的整数对于数组中的其他整数6 至少是数组中其他元素的两倍。6 的下标是 1 所以返回 1 。示例 2 输入nums [1,2,3,4]
输出-1
解释4 没有超过 3 的两倍大所以返回 -1 。 示例 3 输入nums [1]
输出0
解释因为不存在其他数字所以认为现有数字 1 至少是其他数字的两倍。 int dominantIndex(int* nums, int numsSize)
{
int m1-1;
int m2-1;
int index-1;
for(int i0;inumsSize;i)
{if(nums[i]m1){m2m1;m1nums[i];indexi;}else if(nums[i]m2){m2nums[i];}
}
return m1m2*2?index:-1;
//至少是其它值两倍变成是次大值的两倍
} 三十二、 905. 按奇偶排序数组 简单 363 相关企业 给你一个整数数组 nums将 nums 中的的所有偶数元素移动到数组的前面后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 示例 1 输入nums [3,1,2,4]
输出[2,4,3,1]
解释[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。示例 2 输入nums [0]
输出[0]int* sortArrayByParity(int* nums, int numsSize, int* returnSize){
int *arr(int *)malloc(sizeof(int)*numsSize);
int count0;
for(int i0;inumsSize;i)
{if(nums[i]%20){arr[count]nums[i];}
}for(int i0;inumsSize;i){if(nums[i]%21){arr[count]nums[i];} }
*returnSizenumsSize;
return arr;
} 用1次遍历从后往前判断 int* sortArrayByParity(int* nums, int numsSize, int* returnSize){
int *arr(int *)malloc(sizeof(int)*numsSize);
int left0,rightnumsSize-1;
for(int i0;inumsSize;i)
{if(nums[i]%20){arr[left]nums[i];}else{arr[right--]nums[i];}
}*returnSizenumsSize;
return arr;
}