Skip to content

Conversation

garunitule
Copy link
Owner

root = TreeNode(nums[middle_index])
root.left = self.sortedArrayToBST(nums[:middle_index])
root.right = self.sortedArrayToBST(nums[middle_index+1:])
return root

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

読みやすいです。

Copy link

@huyfififi huyfififi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

良いと思います 👍 Step 3の解法がシンプルで理解しやすかったです。


## 他の人のPRやコメントを踏まえて実装
leetcodeの解法
height-balancedだから空間計算量はO(logn)か

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

インデックスを用いる解法なら、PythonのList Slicingによるコピーが発生しないので、空間計算量はcall stack分のO(logn)になりそうですよね。

return result
```

indexを狭めていく方式もある

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

step3 の nums 自体をスライスして渡す方と比べると、個人的には index を使ったこちらの方が好みですね。問題の条件によって選択できると良さそうです。

middle_index = len(nums) // 2
root = TreeNode(nums[middle_index])
root.left = self.sortedArrayToBST(nums[:middle_index])
root.right = self.sortedArrayToBST(nums[middle_index+1:])

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これイマイチ明記がなくいつも迷うのですが、インデックスは一応スペースを開けることが多いのではないかと思います (nums[middle_index + 1])。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants