力扣题目训练(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.mzph.cn/news/690218.shtml

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

相关文章

Javascript中的let和var的详细区别

文章目录 前言var变量提升 let暂时性死区 具体的区别声明后未赋值&#xff0c;表现相同使用未声明的变量&#xff0c;表现不同重复声明同一个变量时&#xff0c;表现不同变量作用范围&#xff0c;表现不同 在JavaScript中我们每时每刻都在声明变量、使用变量&#xff0c;在之前…

Nginx学习笔记

Bilibili尚硅谷视频 Nginx 简介 Nginx 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强&#xff0c;能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 正向代理 正向代理&#xff1a;如…

JavaScript学习记录

JavaScript 是 web 开发人员必须学习的 3 门语言中的一门&#xff1a; HTML 定义了网页的内容CSS 描述了网页的布局JavaScript 控制了网页的行为 以下代码是学习四十分钟JavaScript快速入门做的记录 还可以借鉴JavaScript 教程 // 变量与常量 // let , const // let 变量 //…

【千帆平台】使用千帆大模型平台创建自定义模型调用API,贺岁灵感模型,文本对话

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《千帆平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和…

Docker使用操作

文章目录 Docker基本使用1. 安装Docker(简易版)2. docker常用命令3. 镜像基础命令4. 容器操作5. Dockerfile编写 Docker基本使用 环境: python3.11 使用框架 Django 1. 安装Docker(简易版) 卸载旧版本docker(如果存在) sudo apt-get remove docker docker-engine docker-ce d…

镜像管理工具harbor启动在docker中,应该如何重启?

Harbor 是一个用于存储和分发 Docker 镜像的企业级Registry服务器。在 Docker 环境中启动和管理 Harbor 时&#xff0c;您可能需要重启服务来应用更新或配置更改。以下是在 Docker 中重启 Harbor 的步骤&#xff1a; 登录到服务器&#xff1a;首先&#xff0c;您需要通过 SSH 或…

Go 空切片 VS nil切片

在 Go 语言中&#xff0c;空切片和 nil 切片是两种不同的概念。 空切片&#xff1a; 空切片是一个长度和容量都为 0 的切片。你可以通过 make 函数或者切片字面量来创建一个空切片&#xff0c;例如 s : make([]int, 0) 或者 s : []int{}。 空切片不是 nil&#xff0c;即 s !…

神秘物品,从此告别网络焦虑!随身WiFi好用吗?随身WiFi怎么选?

出门在外&#xff0c;网络可是我们的“生命线”。不拿钱包不拿身份证没啥&#xff0c;不拿手机&#xff0c;没有网可是大大的坏事儿。为了一劳永逸的解决我的网络问题&#xff0c;这次我尝试了一款随身WiFi&#xff0c;来简单聊聊我的真实体验感受吧&#xff01; 一、优点&…

使用php实现pc端和移动端分离

使用php实现pc端和移动端分离 自适应技术可以实现根据浏览器的宽度来实现移动端和pc的自适应&#xff0c;但会影响用户的体验&#xff0c;以下代码实现在同一个链接下&#xff0c;移动端和pc分别有各自的html&#xff0c; $browser get_browser(null, true);// 获取设备宽度$d…

碳化硅模块使用烧结银双面散热DSC封装的优势与实现方法

碳化硅模块使用烧结银双面散热DSC封装的优势与实现方法 新能源车的大多数最先进 (SOTA) 电动汽车的牵引逆变器体积功率密度范围从基于 SSC-IGBT 的逆变器的 <10 kW/L 到基于 SSC-SiC 的逆变器的约 25 kW/L。100 kW/L 代表了这一关键指标的巨大飞跃。 当然&#xff0c;随着新…

嵌入式基础

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/136173662 一.嵌入式系统的组成 1、嵌入式系统是以特定应用为中心、以计算机技术为基础&#xff0c;并将可配置与可裁剪的软、硬件集成于一体的专用计算机系统。 2、嵌入式系统的组成结构是&#xff…

热辣滚烫--如何让PCB上的固定螺丝孔沉下去

高速先生成员--王辉东 龙腾盛世,岁月如歌。祝大家开工大吉&#xff0c;热辣滚烫&#xff0c;红红火火,新的征程已然拉开帷幕。 林如烟和赵理工常听大师兄说&#xff0c;最近几年随着国内芯片行业的快速崛起&#xff0c;ATE工装治具和测试板的需求持续增大&#xff0c;由于芯片…

深入了解Linux /etc/passwd文件

在Linux系统中&#xff0c;/etc/passwd 文件是一个重要的系统文件&#xff0c;记录了系统上所有用户的基本信息。通过查看这个文件&#xff0c;我们可以获取用户的用户名、用户ID&#xff08;UID&#xff09;、组ID&#xff08;GID&#xff09;、用户描述、家目录以及默认的She…

聊聊PowerJob的CleanService

序 本文主要研究一下PowerJob的CleanService CleanServiceSlf4jServicepublic class CleanService { private final DFsService dFsService;private final InstanceInfoRepository instanceInfoRepository;private final WorkflowInstanceInfoRepository workflowInstanceIn…

七、计算机视觉-图像的ROI区域

文章目录 1、什么是ROI2、ROI如何实现的3、一个案例总结 1、什么是ROI 在计算机视觉中&#xff0c;ROI代表感兴趣区域&#xff08;Region of Interest&#xff09;&#xff0c;它是指图像或视频中被指定为需要特别关注或处理的区域。ROI可以帮助减少计算量&#xff0c;并且在处…

TrueNAS磁盘扩容(VDEV 和 RAID 技术)

目录 背景扩容前准备扩容有风险安装新的硬盘到卡槽扩容测试一个VDEV两个VDEV 正式扩容关于Raid总结 背景 这几天将原来windows服务器上的文件拷贝到新做好的TrueNAS上&#xff0c;发现磁盘满了&#xff0c;服务器上还有硬盘卡槽&#xff0c;就新买了12块盘&#xff0c;准备扩容…

中国留学生被“虚拟绑架”?AI让电信诈骗更加逼真,我们该怎么识别?

目录 AI让电信诈骗如虎添翼 如何防范冒充熟人的电信欺诈&#xff1f; 近日&#xff0c;一起针对海外留学生群体的新型电信网络诈骗案引发关注。中国驻美国使馆发言人证实&#xff0c;一名疑似遭绑架的中国留学生实际上遭遇了“虚拟绑架”诈骗。 诈骗分子冒充公检法机关、使馆、…

vue通过获取url中的信息登录页面

在主界面获取到url的信息 html <script>let getRequest function () {var url location.href// 从 URL 中提取查询参数部分const queryParamsString url.split(?)[1];// 使用 URLSearchParams 解析查询参数const queryParams new URLSearchParams(queryParamsStrin…

涛哥聊Python | borb,一个好用的 Python 库,处理 PDF 文件好帮手!

本文来源公众号“涛哥聊Python”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;borb&#xff0c;一个好用的 Python 库&#xff01; 大家好&#xff0c;今天为大家分享一个好用的 Python 库 - borb。 Github地址&#xff1a;htt…

Java初探:从入门到上手应用,一路向前的全面指南!

Java初探&#xff1a;从入门到上手应用&#xff0c;一路向前的全面指南&#xff01; 引言 欢迎来到这篇关于Java编程语言的博客&#xff01;Java是一门广泛应用于软件开发领域的高级编程语言&#xff0c;其设计初衷是为了实现一次编写&#xff0c;到处运行的目标。本文将带领你…