だからどこかに投稿コードを通過した混乱
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
if(nums.size() == 0) return NULL;
int mid=nums.size()/2;
TreeNode* root = new TreeNode(nums[mid]);
auto it=nums.begin()+1;
cout<<*it;
vector<int> left(nums.begin(),nums.begin()+mid);
vector<int> right(nums.begin()+mid+1,nums.end());
root->left=sortedArrayToBST(left);
root->right=sortedArrayToBST(right);
return root;
}
LETサンプル入力される[1,2,3,4]だから、プリントとして
iterator itそれは私に答えを与える3
しかし、サブアレイを作成する際に、サブアレイは要素[1,2]から作成されます。私はここで混乱します。nums.begin()+ middleが要素3を指すように、サブ配列を[1,2,3]にしてはいけませんか?私は誰かがC++が正常に結果に含まれるイテレータのポイントを「開始」で最初の項目が、「エンドシステムを使用しています。この おかげ
あなたの質問には直接関係しませんが、このコードは実行時リソースの大量な浪費です。各ステップで2つの新しいコピーを作成するのではなく、元のベクターにビューを使用する必要があります –