首页 > 其他分享 >day14打卡

day14打卡

时间:2024-08-30 21:37:20浏览次数:11  
标签:return root1 nullptr day14 TreeNode 打卡 root root2

最大二叉树

class Solution
{
public:
int getmax(vector &vec)
{
int index = 0;
int max = INT_MIN;
for(int i = 0; i < vec.size(); ++i)
{
if(max < vec[i])
{
max = vec[i];
index = i;
}
}
return index;
}
TreeNode *traversal(vector &nums)
{
if(nums.empty())
{
return nullptr;
}
int index = getmax(nums);
int rootvalue = nums[index];
TreeNode root = new TreeNode(rootvalue);
if(nums.size() == 1)
{
return root;
}
vector left(nums.begin()+0, nums.begin()+index);
vectorright(nums.begin()+index+1, nums.end());
root->left = traversal(left);
root->right = traversal(right);
return root;
}
TreeNode
constructMaximumBinaryTree(vector& nums) {
if(nums.empty())
{
return nullptr;
}
return traversal(nums);
}
};

合并二叉树

class Solution {
public:
TreeNode *traversal(TreeNode root1, TreeNode root2)
{
TreeNode root;
if(root1 == nullptr && root2 == nullptr)
{
return nullptr;
}
if(root1 != nullptr && root2 == nullptr)
{
//int rootvalue = root1->val;
//root = new TreeNode(rootvalue);
return root1;
}
if(root1 == nullptr && root2 != nullptr)
{
//int rootvalue = root2->val;
//root = new TreeNode(rootvalue);
return root2;
}
if(root1 != nullptr && root2 != nullptr)
{
int rootvalue = root1->val + root2->val;
root = new TreeNode(rootvalue);
}
root->left = traversal(root1->left, root2->left);
root->right = traversal(root1->right, root2->right);
return root;
}
TreeNode
mergeTrees(TreeNode
root1, TreeNode
root2) {
if(root1 == nullptr && root2 == nullptr)
{
return nullptr;
}
return traversal(root1, root2);
}
};

二叉搜索树中的搜素

class Solution
{
public:
TreeNode* searchBST(TreeNode* root, int val)
{
if(root && root->val == val)
{
return root;
}
if(root == nullptr)
{
return nullptr;
}
if(root->val > val)
{
return searchBST(root->left, val);
}
else
{
return searchBST(root->right, val);
}
}
};

验证二叉搜索树

class Solution {
public:
void traversal(TreeNode root)
{
if(root == nullptr)
{
return;
}
traversal(root->left);
_vec.push_back(root->val);
traversal(root->right);
}
bool isValidBST(TreeNode
root) {
if(root)
{
traversal(root);
for(int i = 0; i < _vec.size()-1; ++i)
{
if(_vec[i] >= _vec[i+1])
{
return false;
}
}
}
return true;
}
private:
vector _vec;
};

标签:return,root1,nullptr,day14,TreeNode,打卡,root,root2
From: https://www.cnblogs.com/pwangikun/p/18389540

相关文章

  • day13打卡
    树左下角值classSolution{public:voidtraversal(TreeNoderoot,intdepth,int&ret,int&maxdepth){if(root->left==nullptr&&root->right==nullptr){if(depth>maxdepth){maxdepth=depth;ret=root->val;}}if(root->......
  • day12打卡
    平衡二叉树classSolution{public:intgetheight(TreeNode*root){if(root==nullptr){return0;}intleft=getheight(root->left);intright=getheight(root->right);return1+max(left,right);}boolisBalanced(TreeNode*root){if(root==nullptr)......
  • day11打卡
    翻转二叉树classSolution{public:voidtraversal(TreeNoderoot){if(root==nullptr){return;}traversal(root->left);traversal(root->right);TreeNodetmp=root->left;root->left=root->right;root->right=tmp;}TreeNodeinvertTree(T......
  • day9打卡
    用栈实现队列classMyQueue{public:MyQueue(){}voidpush(intx){stIn.push(x);}intpop(){inta;while(!stIn.empty()){a=stIn.top();stIn.pop();stOut.push(a);}a=stOut.top();stOut.pop();while(!stOut.empty()){intb=stOut.top();stOut.pop();......
  • day8打卡
    反转字符串中的单词classSolution{public:stringreverseWords(strings){intslow=0;inti=0;while(i<s.size()){if(s[i]!=''){if(slow!=0){s[slow++]='';}while(i<s.size()&&s[i]!=''){s[slow+......
  • day7打卡
    反转字符串利用双指针不断向中间靠拢,交换数据classSolution{public:voidreverseString(vector&s){intleft=0;intright=s.size()-1;while(left<right){chartmp='\0';tmp=s[left];s[left++]=s[right];s[right--]=tmp;}}};反转字符串II......
  • 代码随想录训练营 Day42打卡 动态规划 part09 188.买卖股票的最佳时机IV 309. 最佳买
    代码随想录训练营Day42打卡动态规划part09一、力扣188.买卖股票的最佳时机IV给你一个整数数组prices和一个整数k,其中prices[i]是某支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成k笔交易。也就是说,你最多可以买k次......
  • Datawhale X 李宏毅苹果书AI夏令营 Task1打卡
    3.1局部极小值与鞍点3.1.1临界点及其分类参数对于损失函数的微分为零时,就无法进一步优化了,训练即停止了。所以我们把这些梯度为零的点统称为临界点。临界点可以分为两类:极值点(局部极小值)和鞍点。鞍点就是指那些梯度为零但不是局部极小值或者局部极大值的点,因为其在损失......
  • 【题解】Solution Set - NOIP2024集训Day14 CDQ分治
    【题解】SolutionSet-NOIP2024集训Day14CDQ分治https://www.becoder.com.cn/contest/5482「CF364E」EmptyRectangles*3000摆烂了。「SDOI2011」拦截导弹CDQ的例题,之前做过(现在试图自己再做出来。第二问只用在第一问里面记录每一次是从哪个\(j\)​转移过来的,以及......
  • 企业微信如何远程打卡,免费
    现在一些定位软件不好用或者要收费,那么如何能够很好的免费实现远程打开呢?首先需要一个不用的旧手机,一直放在公司里,然后拿自己常用手机远程操作来实现,具体步骤如下:旧手机需要打开开发者模式,然后打开屏幕常亮保证不会锁屏;公司电脑下载scrcpy用来操作连接的旧手机;下载地址......