【每日刷题】Day50

【每日刷题】Day50

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 654. 最大二叉树 - 力扣(LeetCode)

2. 119. 杨辉三角 II - 力扣(LeetCode)

3. 735. 小行星碰撞 - 力扣(LeetCode)

1. 654. 最大二叉树 - 力扣(LeetCode)

//思路:递归遍历,通过不断改变左右区间找到最大值,从而保证在最大值左边构建子树以及最大值右边构建子树。

typedef struct TreeNode TN;

TN* CreatBinaryTree(int* nums,int left,int right)

{

    if(left>right)//当区间不存在时,说明已经没有值能找了,直接返回NULL

        return NULL;

    int max = left;

    for(int i = left;i<=right;i++)

    {

        if(nums[i]>nums[max])//定位当前最大值的下标,作为下一次寻找左右最大结点的区间

        {

            max = i;

        }

    }

    TN* node = (TN*)malloc(sizeof(TN));

    node->val = nums[max];

    node->left = CreatBinaryTree(nums,left,max-1);

    node->right = CreatBinaryTree(nums,max+1,right);

    return node;

}



 

struct TreeNode* constructMaximumBinaryTree(int* nums, int numsSize)

{

    return CreatBinaryTree(nums,0,numsSize-1);

}

2. 119. 杨辉三角 II - 力扣(LeetCode)

//思路:构建杨辉三角。

int* getRow(int rowIndex, int* returnSize)

{

    int** arr = (int**)malloc(sizeof(int*)*34);

    for(int i = 0;i<34;i++)

    {

        arr[i] = (int*)malloc(sizeof(int)*35);

    }

    for(int i = 0;i<34;i++)

    {

        arr[i][0] = 1;

        arr[i][i] = 1;

    }

    for(int i = 2;i<34;i++)

    {

        for(int j = 1;j<i;j++)

        {

            arr[i][j] = arr[i-1][j-1]+arr[i-1][j];

        }

    }

    int* ans = (int*)malloc(sizeof(int)*34);

    int count = 0;

    for(int i = 0;i<rowIndex+1;i++)

    {

        ans[count++] = arr[rowIndex][i];

    }

    *returnSize = count;

    return ans;

}

3. 735. 小行星碰撞 - 力扣(LeetCode)

//思路:栈。遍历数组,入栈情况: ① 如果栈中没有元素则入栈  ② 如果数组当前元素>0,则不可能发生碰撞,入栈  ③ 如果栈顶元素<0并且数组当前元素也<0,入栈

出栈情况: 如果栈顶元素>0并且数组当前元素<0,则要判断是否出栈。① 如果数组当前元素的绝对值>栈顶元素,则将栈顶元素替换为当前数组元素,并继续跟栈顶下一个元素比较

② 如果数组当前元素的绝对值=栈顶元素,则直接将栈顶元素出栈,不进行入栈操作

③ 如果数组当前元素的绝对值<栈顶元素,则不进行操作。

注意:这里需要考虑到当 是第①种出栈情况时,需要考虑到栈顶下面元素也为负数,或者栈的下标为0的情况。

int* asteroidCollision(int* asteroids, int asteroidsSize, int* returnSize)

{

    int* ans = (int*)malloc(sizeof(int)*10000);

    int count = 0;

    for(int i = 0;i<asteroidsSize;i++)

    {

        if(count==0||asteroids[i]>0||(asteroids[i]<0&&ans[count-1]<0))//入栈情况

        {

            ans[count++] = asteroids[i];

        }

        else

        {

            while(count&&(asteroids[i]*(-1))>ans[count-1]&&ans[count-1]>0)//当前数组元素的绝对值大于栈顶元素,并且栈顶元素必须>0才能发生碰撞

            {

                ans[--count] = asteroids[i];

            }

            if(count==0||(asteroids[i]<0&&ans[count-1]<0))//考虑到 10 5 -15 这种一路碰撞到栈下标为0或者栈顶下面元素都为负数的情况,需要将返回大小+1

            {

                count++;

            }

            if(count&&(asteroids[i]*(-1))==ans[count-1])//如果当前数组元素绝对值与栈顶元素相同,则同归于尽

            {

                count--;

            }

        }

    }

    *returnSize = count;

    return ans;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「动态规划」粉刷房子

力扣原题链接&#xff0c;点击跳转。 假设有n个房子&#xff0c;每个房子可以粉刷成红色、蓝色或者绿色。相邻2个房子不能刷同一种颜色。下标为i的房子粉刷成下标为j的颜色的价格是costs[i][j]。至少需要花多少钱&#xff1f; 我们用动态规划的思想来解决这个问题。首先定义状…

微信行驶证识别

1.官网文档 行驶证识别 | 微信开放文档 2.免费次数购买微信OCR识别 | 微信服务市场 需要购买&#xff0c;否则会报错{"errcode":101003,"errmsg":"not enough market quota hint: [] rid: "} 错误总结 {\"errcode\":41005,\"…

MATLAB system identification系统辨识app的使用

系统辨识 前言系统辨识第一步 选取时域数据到app第二步 分割数据第三步 设置传递函数的参数第四步 Estimate第五步 结束 前言 接上节&#xff1a;simulink-仿真以及PID参数整定 系统模型的辨识工作&#xff0c;在控制领域&#xff0c;一般用于开发控制器的先手工作。一般而言…

【数据结构与算法 | 基础篇】栈:中缀表达式转变为后缀表达式

1. 前言 假设我们已经知道中缀表达式和后缀表达式的概念. 我们可以用符号栈来实现中缀表达式向后缀表达式的转变. 2. 符号栈实现中缀表达式转变为后缀表达式 (1). 思路 我们设计了可变字符串与符号栈. 如果传入的字符串的字符是数字字符&#xff0c;则直接将该字符append到…

Python | 十、调试(pdb库)

pdb 是 Python 的官方标准库之一&#xff0c;提供了一个交互式源代码调试器。它可以让开发者在程序执行过程中暂停&#xff0c;检查代码状态&#xff08;如变量的值&#xff09;&#xff0c;单步执行代码&#xff0c;以及运行到某个特定位置等。这些功能使得开发者能够理解代码…

调整图片和表格尺寸的命令:resizebox

\resizebox 是 LaTeX 中的一个命令&#xff0c;用于调整插入的内容&#xff08;如图像、表格、文本等&#xff09;的大小。它的语法如下&#xff1a; \resizebox{<width>}{<height>}{<content>}其中&#xff1a; <width> 和 <height> 分别表示…

IDEA提示Untrusted Server‘s certificate

如果你用的是Intellij系列IDE&#xff08;GoLand, PHPStorm, WebStorm, IDEA&#xff09;&#xff0c;突然弹出个提示『Untrusted Servers certificate 』 莫慌&#xff0c;这是因为你用了破解版的 IDE&#xff0c;破解过程中有个hosts绑定的操作&#xff1a; 0.0.0.0 account.…

代数拓扑学

啊&#xff0c;哈喽&#xff0c;小伙伴们大家好。我是#张亿&#xff0c;今天呐&#xff0c;学的是代数拓扑学 代数拓扑学是拓扑学中主要依赖 [1]代数工具来解决问题的一个分支。同调与同伦的理论是代数拓扑学的两大支柱&#xff08;见同调论&#xff0c;同伦论&#xff09;。 …

K8s集群调度续章

目录 一、污点&#xff08;Taint&#xff09; 1、污点&#xff08;Taint&#xff09; 2、污点组成格式 3、当前taint effect支持如下三个选项&#xff1a; 4、查看node节点上的污点 5、设置污点 6、清除污点 7、示例一 查看pod状态&#xff0c;模拟驱逐node02上的pod …

NoSQL数据库技术与应用 教学设计

《NoSQL数据库技术与应用》 教学设计 课程名称&#xff1a;NoSQL数据库技术与应用 授课年级&#xff1a; 20xx年级 授课学期&#xff1a; 20xx学年第一学期 教师姓名&#xff1a; 某某老师 2020年5月6日 课题 名称 第1章 初识NoSQL 计划 学时 3 课时 内容 分析 随着云计算、…

【软件安装】office不让卸载、visio安装报错64位等

问题描述 office安装时报错&#xff0c;显示64位、32位不能共存。或者word已经安装了&#xff0c;再装visio的时候就显示报错。 解决思路 卸载已经安装的版本重新安装 遇到的问题 首先是卸载不了&#xff0c;在windows的setting里面&#xff0c;无法卸载&#xff1b;安装包…

【面试】JDK和JVM是什么关系?

目录 1. JDK2. JVM3. 关系 1. JDK 1.Java Development Kit&#xff0c;java开发工具包。2.提供了java应用程序开发所需的所有工具和API。3.JDK包含了JRE&#xff08;Java Runtime Environment&#xff09;,即Java运行环境&#xff0c;以及编译Java源代码的编译器&#xff08;j…

消费增值的真面目!绿色积分的合理运用!

各位朋友&#xff0c;大家好&#xff01;我是吴军&#xff0c;来自一家备受瞩目的软件开发企业&#xff0c;担任产品经理一职。今天&#xff0c;我非常荣幸能有机会与大家分享一种在市场上备受瞩目的新型商业模式——消费增值模式。 随着环保和可持续发展理念日益深入人心&…

对象解构与迭代器的猫腻?

前言 变量的解构赋值是前端开发中经常用到的一个技巧&#xff0c;比如&#xff1a; // 对象解构 const obj { a: 1, b: 2 }; const { a, b } obj; console.log(a, b)数组解构 const arr [1, 2, 3]; const [a, b] arr; console.log(a, b)工作中我们最经常用的就是类似上面…

轻松拿捏C语言——自定义类型之【结构体】

&#x1f970;欢迎关注 轻松拿捏C语言系列&#xff0c;来和 小哇 一起进步&#xff01;✊ &#x1f389;创作不易&#xff0c;请多多支持&#x1f389; &#x1f308;感谢大家的阅读、点赞、收藏和关注&#x1f495; &#x1f339;如有问题&#xff0c;欢迎指正 1. 结构体类型的…

echarts-象形柱图

象形柱图 一般的柱图都是纯色柱图&#xff0c;使用象形柱图可以给柱图定义自己的样式。 样式的调节与柱图一样&#xff0c;核心在于symbol调节柱图的组成。 let options {tooltip: {},xAxis: {type: "category",data: ["d1", "d2", "d3&qu…

具有固定宽度的盒子:\makebox, \parbox

makebox \makebox 是 LaTeX 中的一个命令&#xff0c;用于创建一个具有固定宽度的盒子&#xff0c;并在该盒子内放置内容。这个命令可以用于控制文本或对象的位置和对齐。 语法如下&#xff1a; \makebox[<width>][<alignment>]{<content>}其中&#xff1…

存储+调优:存储-memcached

存储调优&#xff1a;存储-memcached 什么是memcached? 高性能的分布式内存缓存服务器。通过缓存数据库的查询结果&#xff0c;减少数据库访问次数&#xff0c;以提高动态Web应用的速度、提高可扩展性。 在memcached中存什么&#xff1f; 尽快被保存 访问频率高 1.数据保…

【CSharp】int类型与IntPtr类型之间的转换

【CSharp】int类型与IntPtr类型之间的转换 1.背景2.int转IntPtr接口3.IntPtr转int接口4.相互转化示例1.背景 .NET提供了一个结构体System.IntPtr专门用来代表句柄或指针。 IntPtr 结构,表示一个带符号整数,其中位宽度与指针相同。 注解 类型 IntPtr 设计为一个整数,其大小…

unity回到低版本报错解决

用高版本2022打开过后的再回到2020就报了一个错。 报错如下&#xff1a; Library\PackageCache\com.unity.ai.navigation1.1.5\Runtime\NavMeshSurface.cs 看了一下是Library&#xff0c;然后我删除了整个Library文件夹&#xff0c;重启启动生成Library&#xff0c;然后还是…