刷题 31-35

三十一、

747. 至少是其他数字两倍的最大数

给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。

请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -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 至少是其他数字的两倍。
cpp 复制代码
int dominantIndex(int* nums, int numsSize)
{
int m1=-1;
int m2=-1;
int index=-1;
for(int i=0;i<numsSize;i++)
{
    if(nums[i]>m1)
    {
        m2=m1;
        m1=nums[i];
        index=i;
    }else if(nums[i]>m2)
    {
        m2=nums[i];
    }
}
return m1>=m2*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]
cpp 复制代码
int* sortArrayByParity(int* nums, int numsSize, int* returnSize){
int *arr=(int *)malloc(sizeof(int)*numsSize);
int count=0;
for(int i=0;i<numsSize;i++)
{
    if(nums[i]%2==0)
    {
        arr[count++]=nums[i];
    }
}
    for(int i=0;i<numsSize;i++)
    {
        if(nums[i]%2==1)
        {
       arr[count++]=nums[i];
        } 
    }
*returnSize=numsSize;
return arr;
}

用1次遍历+从后往前判断

cpp 复制代码
int* sortArrayByParity(int* nums, int numsSize, int* returnSize){
int *arr=(int *)malloc(sizeof(int)*numsSize);
int left=0,right=numsSize-1;
for(int i=0;i<numsSize;i++)
{
    if(nums[i]%2==0)
    {
        arr[left++]=nums[i];
    }
    else
    {
        arr[right--]=nums[i];
    }
}
  
*returnSize=numsSize;
return arr;
}
相关推荐
Code_Solitude4 小时前
C语言动态内存 + 柔性数组 + 数组名退化
c语言·算法·柔性数组
上海潭龙东海科技有限公司4 小时前
客运站管控之动态孪生技术方案(新增一屏管控模块
数据仓库·人工智能·算法·重构·动态规划
YLCHUP7 小时前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
思麟呀7 小时前
背包DP(01背包+完全背包)
c++·算法
笑容掩饰我的失落8 小时前
区块链从小白到精通(七):Solidity 语法精讲——数据类型、函数、修饰器与事件
算法·区块链·php·智能合约·哈希算法
Pniubi9 小时前
力扣24. 两两交换链表中的节点(递归)
算法·leetcode·链表
nice_lcj5209 小时前
LRU 缓存入门:它是什么、怎么用、面试怎么手写
java·数据结构·缓存·面试·lru
꧁细听勿语情꧂10 小时前
直接选择排序,堆排序,冒泡排序,递归快速排序、hoare版本、挖坑法、lomuto前后指针,非递归快速排序
c语言·开发语言·数据结构·算法
俊俊几年的10 小时前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c