獲取生成陣列中的最大值

2021-10-17 03:32:56 字數 1292 閱讀 2710

給你乙個整數 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

class

solution

nums[0]

=0; nums[1]

=1;for

(int i =

2; i < nums.length; i++

)else

temp = math.

max(temp,nums[i]);

}return temp;

/*for(int i = 0;i < nums.length;i++)

if( i == 1)

if(i % 2 == 0 && i * 2 >= 2)

if(i % 2 == 1 && i * 2 + 1 >= 2)

}if(nums.length > 0)

return temp;*/

}}

1646 獲取生成陣列中的最大值(模擬)

1.問題描述 給你乙個整數 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 中的最大值。示例 ...

獲得生成陣列中的最大值

leetcode 1646.獲得生成陣列中的最大值 給你乙個整數n。按下述規則生成乙個長度為n 1的陣列nums nums 0 0,nums 1 1。當2 2i n時,nums 2i nums i 當 2 2i 1 n時,nums 2i 1 nums i nums i 1 返回生成陣列nums中的最...

生成視窗最大值陣列

題目描述 有乙個整型陣列arr和乙個大小為w的視窗從陣列的最左邊滑到最右邊,視窗每次向右邊滑乙個位置,求每一種視窗狀態下的最大值。如果陣列長度為n,視窗大小為w,則一共產生n w 1個視窗的最大值 輸入描述 第一行輸入n和w,分別代表陣列長度和視窗大小 第二行輸入n個整數x,表示陣列中的各個元素 輸...