力扣题目训练(16)

2024年2月9日力扣题目训练

  • 2024年2月9日力扣题目训练
    • 530. 二叉搜索树的最小绝对差
    • 541. 反转字符串 II
    • 543. 二叉树的直径
    • 238. 除自身以外数组的乘积
    • 240. 搜索二维矩阵 II
    • 124. 二叉树中的最大路径和

2024年2月9日力扣题目训练

2024年2月9日第十六天编程训练,今天主要是进行一些题训练,包括简单题3道、中等题2道和困难题1道。惰性太强现在才完成,不过之后我会认真完成的。

530. 二叉搜索树的最小绝对差

链接: 二叉搜索树的最小绝对差
难度: 简单
题目:
题目描述

运行示例:
运行示例

思路:
二叉搜索树的中序遍历是一个递增序列,利用这条性质,我们可以先得到一个序列,然后再找最小值。
代码:

class Solution {
private:vector<int> nums;
public:void inorder(TreeNode* root){if(root == NULL) return;inorder(root->left);nums.push_back(root->val);inorder(root->right);}int getMinimumDifference(TreeNode* root) {inorder(root);int ans = INT_MAX;for(int i = 1; i < nums.size(); i++){ans = min(ans,nums[i]-nums[i-1]);}return ans;}
};

541. 反转字符串 II

链接: 反转字符串
难度: 简单
题目:
题目描述

运行示例:
运行示例

思路:
这道题按照所述要求去完成即可。
代码:

class Solution {
public:string reverseStr(string s, int k) {int i = 0,n = s.size();while(i < n){reverse(s.begin()+i, s.begin() + min(i + k, n));i += 2 * k;}return s;}
};

543. 二叉树的直径

链接: 二叉树的直径
难度: 简单
题目:
题目描述

运行示例:
运行示例

思路:
我们知道**一条路径的长度为该路径经过的节点数减一,**所以求直径(即求路径长度的最大值)等效于求路径经过节点数的最大值减一。所以我们可以利用深度优先求左右子树的最大深度。
代码:

class Solution {
public:int ans = 0;int depth(TreeNode* root){if(root == NULL) return 0;int L = depth(root->left);int R = depth(root->right);ans = max(ans, L+R+1);return max(L,R) + 1;}int diameterOfBinaryTree(TreeNode* root) {depth(root);return ans-1;}
};

238. 除自身以外数组的乘积

链接: 乘积
难度: 中等
题目:
题目描述

运行示例:
运行示例

思路:
这道题试求乘积,但是有0的问题,所以我们独立将0记录,将剩余的乘起来,然后根据记录从而进行判断和处理。
代码:

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int mt = 1;int zero = 0;vector<int> ans;for(int i = 0; i < nums.size(); i++){if(nums[i] == 0) zero++;else mt *= nums[i];}for(int i = 0; i < nums.size(); i++){if(zero != 0){if(zero == 1 && nums[i] == 0) ans.push_back(mt);else ans.push_back(0);}else{ans.push_back(mt/nums[i]);}}return ans;}
};

240. 搜索二维矩阵 II

链接: 搜索二维矩阵
难度: 中等
题目:
题目描述

运行示例:
运行示例

思路:
这道题我本来是利用递归来做的结果时间超时了,看了官方的题解,我发现我忽略了升序这一点,我们可以利用这一性质,对每行进行二分查找判断。这道题值得吐槽的是直接遍历也可以不会超时╮(╯▽╰)╭。
代码:

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int n = matrix.size();int m = matrix[0].size();for(int i = 0; i < n; i++){int left = 0,right = m-1;while(left <= right){int mid = (right - left)/2+left;if(matrix[i][mid] == target) return true;else if(matrix[i][mid] < target) left = mid+1;else right = mid -1;}}return false;}
};

124. 二叉树中的最大路径和

链接: 最大路径和
难度: 困难
题目:
题目描述

运行示例:
运行示例

思路:
这道题本质就是遍历,我们需要计算二叉树中的一个节点的最大贡献值,具体而言,就是在以该节点为根节点的子树中寻找以该节点为起点的一条路径,使得该路径上的节点值之和最大。
代码:

class Solution {
private:int maxSum = INT_MIN;
public:int maxGain(TreeNode* root){if(root == NULL) return 0;int leftGain = max(maxGain(root->left),0);int rightGain = max(maxGain(root->right),0);int pricepath = root->val + leftGain + rightGain;maxSum = max(maxSum,pricepath);return root->val + max(leftGain,rightGain);}int maxPathSum(TreeNode* root) {maxGain(root);return maxSum;}
};

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

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

相关文章

CSS学习(三)

目录&#xff1a; 1. CSS引入方式 1.1 三种样式表 1.2 内部样式表&#xff08;嵌入式引入&#xff09; 1.3 行内样式表&#xff08;内联样式表&#xff09; 1.4 外部样式表 1.5 总结 1. CSS引入方式 1.1 三种样式表 1.2 内部样式表&#xff08;嵌入式引入&#xff09; …

js设计模式:策略模式

作用: 根据不同的条件去进行相应的业务逻辑处理 就好比针对每种情况都制定对应的方案,触发条件就启动某项方案策略 示例: //策略对象const arrangeFun {model1:(value1,value2,value3,value4)>{return ${value1}${value2}${value3}:${value4}},model2:(value1,value2,va…

每日OJ题_二叉树dfs②_力扣129. 求根节点到叶节点数字之和

目录 力扣129. 求根节点到叶节点数字之和 解析代码 力扣129. 求根节点到叶节点数字之和 129. 求根节点到叶节点数字之和 难度 中等 给你一个二叉树的根节点 root &#xff0c;树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字&am…

win10系统中配置JDK1.8和JDK11,以及自由切换使用

超详细WindowsJDK1.8与JDK11版本切换教程_jdk1.8升级jdk11-CSDN博客 1、上面链接为参考教程。该链接有当安装jdk11版本后&#xff0c;在cmd命令行界面中无法在切换回jdk1.8的解决办法 2、下载jdk11链接&#xff0c;登陆官方 注册账号后&#xff0c;选择jdk11版本下载。 Java…

人工智能_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_003---人工智能工作笔记0098

前面的环境安装差不多了,这里我没有安装git,因为我认为用不到,好下面去下载算法: 首先是算法下载: https://codeload.github.com/THUDM/ChatGLM-6B/zip/refs/heads/main 算法的下载连接是这里: 可以看到下载以后得到这个ChatGLM-6B-main这个算法压缩包 然后我们再去: 然后…

【python】windowslinux系统python的安装

一、python官网及下载路径 官网地址&#xff1a;Welcome to Python.org 下载路径&#xff1a;Download Python | Python.org ​​​​​​​ linux源码安装包下载&#xff1a; windows二进制安装包下载&#xff1a; 二、Linux如何安装python 2.1 单版本安装 以安装python…

K8s进阶之路-命名空间级-服务发现 :

服务发现&#xff1a; Service&#xff08;东西流量&#xff09;&#xff1a;集群内网络通信、负载均衡&#xff08;四层负载&#xff09;内部跨节点&#xff0c;节点与节点之间的通信&#xff0c;以及pod与pod之间的通信&#xff0c;用Service暴露端口即可实现 Ingress&#…

终端门店的价格可以查吗

电商数据的价格查询方式&#xff0c;品牌多通过系统进行采集、监测&#xff0c;或者安排人力进行手动查价&#xff0c;因为数据是公开的&#xff0c;品牌可以随时查询&#xff0c;但终端门店的产品价格&#xff0c;则无法通过系统去实现查询&#xff0c;只能靠人工去查价&#…

代码随想录算法训练营第三七天 | 单调递增的数字、监控二叉树

目录 单调递增的数字监控二叉树 LeetCode 738.单调递增的数字 LeetCode 968.监控二叉树 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xf…

【AI大模型】ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

平时积累的FPGA知识点(7)

平时在FPGA群聊等积累的FPGA知识点&#xff0c;第七期&#xff1a; 11 描述扇出的xilinx官方文档是&#xff1f; 解释&#xff1a;ug949 12 在BD中如何指定某个IP用global&#xff0c;其他的用OOC模式&#xff1f;因为某个模块引用的IP带着XPM&#xff0c;综合不了 解释&am…

两次网脱+疑难白内障,眼科医生刀尖起舞为他挽回光明!

“不错&#xff0c;挺清楚的”“文件能看清了”“墙上的小字也能看见了”…… “好啦好啦&#xff0c;快别嘚瑟了&#xff01;”妻子在一旁抿嘴笑。 昨天刚做完白内障手术的Y先生&#xff0c;打开纱布后如释重负的心情溢于言表。 同坐在一间复查室里的&#xff0c;还有几位老…