前往
大廳
主題

LeetCode - 1646. Get Maximum in Generated Array 解題心得

Not In My Back Yard | 2023-05-11 12:00:05 | 巴幣 0 | 人氣 169

題目連結:


題目意譯:
你被給定一整數 n。一個索引值從 0 開始且長度為 n + 1 的整數陣列 nums 將由以下方式生成:
nums[0] = 0
nums[1] = 1
nums[2 × i] = nums[i] 當 2 ≦ 2 × i ≦ n
nums[2 × i + 1] = nums[i] + nums[i + 1] 當 2 ≦ 2 × i + 1 ≦ n

回傳陣列 nums 中最大的整數。

限制:
0 ≦ n ≦ 100



範例測資:
範例 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],而最大值為 max(0,1,1,2,1,3,2,3) = 3。

範例 2:
輸入: n = 2
輸出: 1
解釋: 根據給定的規則,nums = [0,1,1]。最大值為 max(0,1,1) = 1。

範例 3:
輸入: n = 3
輸出: 2
解釋: 根據給定的規則,nums = [0,1,1,2]。最大值為 max(0,1,1,2) = 2。


解題思維:
因為 n 值很小,所以直接把 nums 根據給定的規則建立出來然後找出最大值即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作