首页 > 其他分享 >获取生成数组中的最大值

获取生成数组中的最大值

时间:2023-07-26 17:46:44浏览次数:39  
标签:示例 int 最大值 nums 获取 num 数组

给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums :

nums[0] = 0
nums[1] = 1
当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]
当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]
返回生成数组 nums 中的 最大 值。

示例 1:

输入:n = 7
输出:3
解释:根据规则:
nums[0] = 0
nums[1] = 1
nums[(1 * 2) = 2] = nums[1] = 1
nums[(1 * 2) + 1 = 3] = nums[1] + nums[2] = 1 + 1 = 2
nums[(2 * 2) = 4] = nums[2] = 1
nums[(2 * 2) + 1 = 5] = nums[2] + nums[3] = 1 + 2 = 3
nums[(3 * 2) = 6] = nums[3] = 2
nums[(3 * 2) + 1 = 7] = nums[3] + nums[4] = 2 + 1 = 3
因此,nums = [0,1,1,2,1,3,2,3],最大值 3
示例 2:

输入:n = 2
输出:1
解释:根据规则,nums[0]、nums[1] 和 nums[2] 之中的最大值是 1
示例 3:

输入:n = 3
输出:2
解释:根据规则,nums[0]、nums[1]、nums[2] 和 nums[3] 之中的最大值是 2

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/get-maximum-in-generated-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

直接模拟

class Solution {
    public int getMaximumGenerated(int n) {
        int[] num = new int[n+1];
        if(n==0)return 0;
        num[0]=0;
        num[1]=1;
        //直接根据条件模拟
        for(int i=0;i<n;i++){
            if(i*2<=n)num[2*i]=num[i];
            if(i*2+1<=n)num[2*i+1]=num[i]+num[i+1];
        }
        int max = 0;
        for(int a : num){
            max = Math.max(max,a);
        }
        return max;
    }
}

标签:示例,int,最大值,nums,获取,num,数组
From: https://www.cnblogs.com/xiaochaofang/p/17583123.html

相关文章

  • 获取正确的时间
    如果修改了电脑的系统时间,使用代码获取的时间可能会不正确。在编程中,为了获取正确的时间,通常建议使用网络时间服务器(NTP)来获取准确的时间。具体而言,在许多编程语言和框架中,都提供了与NTP时间服务器进行交互的库或函数,以获取准确的时间。以下是一些常见编程语言的示例:C#:usi......
  • Java中代码Bug记录--泛型失效、数组删除、HashMap死循环
    最近在工作的过程中,遇到了不少奇怪自己或者同事的Bug,都是一些出乎意料的,不太容易发现的,记录一下来帮助可能也遇到了这些Bug的人1.编译时泛型校验失效Map<String,String>nameToType=newHashMap<>();nameToType.put("testName",123);//java:不兼容的类型:int无法转......
  • 树状数组
    【模板】单点修改。时间复杂度O(logn)voidadd(intpos,intw){while(pos<=n){tree[pos]+=w;pos+=lowbit(pos);}} 区间查询。时间复杂度O(logn)返回的是从1到pos的值的和。intquery(intpos){intres(0);whil......
  • jmeter获取token
    引用直接使用${token}{"code":1,"message":"登录成功","data":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqc29uIjoie1wic3RhZmZJZFwiOjEsXCJzeXN0ZW1cIjpcImdvdlwifSJ9.DJhipR7Y5uzMHV8yfK2jkO0rlHKrpjaM9ve-tt......
  • oracle partition by 查询重复记录中的1条数据(获取表去重后的数据所有字段)
    1,partitionby分组后给分组数据排序selectt.*,row_number()over(partitionbyt."name",t."rid"orderbyt."rid")as"sort"from"person"t;2、获取去重后的记录selectt2.*from(SELECTt.*,row_number()over(partitionbyt.&......
  • LeetCode 560. 和为 K 的子数组
    classSolution{public:intsubarraySum(vector<int>&nums,intk){intn=nums.size(),res=0;vector<int>s(n+1,0);unordered_map<int,int>hash;//记录端点i之前所有前缀和的出现情况for(inti=1;i<=n;i++)......
  • PHP 数组
    数组能够在单独的变量名中存储一个或多个值。实例数组在单个变量中存储多个值:<?php$cars=array("porsche","BMW","Volvo");echo"Ilike".$cars[0].",".$cars[1]."and".$cars[2].".";?>什么是数组?数组是特殊的变量,它......
  • docker 获取某个时间段的日志
    dockerlogs--since='2023-07-26T01:50:00'--until='2023-07-26T03:00:00'abbccdd  >aaaa0726.log2>&1TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChin......
  • 使用filesystemobject获取文件夹及子文件夹下所有文件名
    1OptionExplicit2Dimi3Functionsda(path)4Dimfso5Dimf6Dims7Dimff8Setfso=CreateObject("scripting.filesystemobject")9Setf=fso.getfolder(path)10ForEachsInf.Files11i=i......
  • python 固定长度数组
    python固定长度数组在Python中,数组是一种常见的数据结构,用于存储相同类型的元素。通常,我们可以使用列表(List)来表示数组。然而,Python中的列表是可变长度的,这意味着我们可以随时向列表中添加或删除元素。但在某些情况下,我们需要固定长度的数组,即不能增加或删除元素。本文将介绍如何......