ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【跟着英雄哥学算法】 线性枚举 -- 最值算法

2021-11-06 23:31:59  阅读:196  来源: 互联网

标签:numsSize return nums -- max 哥学 int 算法 min


                        n个数的最小值

   

   代码如下

int Min(int a, int b) {                 // 定义函数
    return a < b ? a : b;
}

int findMin(int* nums, int numsSize){
    int i;
    int min = 100000001;                // (2)如果定义最大值则max设为0
    for(i = 0; i < numsSize; ++i)
        min = Min(min, nums[i]);        // (3)
    return min;
}

 

 

      485.最大连续1的个数

      https://leetcode-cn.com/problems/max-consecutive-ones/

 

int findMaxConsecutiveOnes(int* nums, int numsSize){
int count=0;
int max=0;
for(int i=0;i<numsSize;i++){
    if(nums[i]==1){
        count+=1;
        if(count>max){ //求最大
            max=count; //每次循环的最大都等于count
        }
    }else count=0;    //这个条件比较必要
}return max;
}

 

      1464.数组中两元素的最大乘积

       https://leetcode-cn.com/problems/maximum-product-of-two-elements-in-an-array/

 

 

 

int maxProduct(int* nums, int numsSize){
    int max=0;                     //直接暴力循环
for(int i=0;i<numsSize-1;i++)     //注意i和j的取值范围既可以
{
for(int j=i+1;j<numsSize;j++)     //注意j=i+1
{
    if(((nums[i]-1)*(nums[j]-1))>max) 
    max=(nums[i]-1)*(nums[j]-1);
}
}

 

     153.寻找旋转排序数组中的最小值

     https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/

     别看条件这么多好像很复杂的样子,其实还是蛮简单的,只需要找到数组的最小值就可以

 

int findMin(int* nums, int numsSize){
    for(int i=1; i < numsSize; i++){    //遍历数组,从第二个元素开始
        if(nums[i] < nums[i-1]){        //若该元素小于其前一个元素则说明它为最小元素
            return nums[i];            //返回nums[i]
        }
    }

    return nums[0];                     //无符合元素则说明第一个元素为最小元素
}


 

 

    154.寻找旋转排序数组中的最小值Ⅱ

     https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/

     听闻力扣hard很难,这道hard题我也以为很难,其实代码很简单,也很容易想到。

 



int findMin(int* nums, int numsSize){
    int min=nums[0];
for(int i=0;i<numsSize;i++){
    if(min>nums[i])min=nums[i];
}return min;
}

 

标签:numsSize,return,nums,--,max,哥学,int,算法,min
来源: https://blog.csdn.net/weixin_58183566/article/details/121185995

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有