深度遍历DFS(括号生成,二叉树所有路径)
正整数 n 代表生成括号的对数,请设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:
输入:n = 1 输出:["()"]
注意的是
1. DFS 一定有一个边界值来跳出深度优先条件
2. 如果符合条件,马上来添加进入结果中
class Solution {
public:vector<string> generateParenthesis(int n) {vector<string> res;string str="";if(n<=0) {return res;}helper(res,str,n,n);return res;}void helper(vector<string>& strs, string str, int left, int right) {if(left<0||right<0||left>right) {return;}if(left==0&&right==0) {strs.emplace_back(str);}helper(strs,str+"(",left-1,right);helper(strs,str+")",left,right-1);}
};
257. 二叉树的所有路径
https://leetcode.cn/problems/binary-tree-paths/

输入:root = [1,2,3,null,5] 输出:["1->2->5","1->3"]
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<string> binaryTreePaths(TreeNode* root) {vector<string> result;string str;if(root==nullptr) {return result;}helper(root,result,"");return result;}void helper(TreeNode* root, vector<string> & result, string str) {str +=to_string(root->val);if(root->left==nullptr&&root->right==nullptr) {result.push_back(str);return;}// 区别的是这里需要来判断二叉树的节点是否为空指针节点,// 非空指针节点才能进行下一步的判断和处理if(root->left) helper(root->left, result, str+"->");if(root->right) helper(root->right, result, str+"->");}
};
112. 路径总和
https://leetcode.cn/problems/path-sum/
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
叶子节点 是指没有子节点的节点。
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool hasPathSum(TreeNode* root, int targetSum) {if(root==nullptr) {return false;}return helper(root,targetSum);}bool helper(TreeNode* root, int targetSum) {if(root==nullptr) {return false;}if(root->left==nullptr&&root->right==nullptr) {return targetSum==root->val;}return helper(root->left,targetSum-root->val) || helper(root->right,targetSum-root->val);}
};
相关文章:
深度遍历DFS(括号生成,二叉树所有路径)
正整数 n 代表生成括号的对数,请设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:["((()))","(()())","(())()","()(())","()()(…...
Rational Arithmetic
📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️有理数运算 实现对两个有理数的…...
文心一言4.0(ERNIE-Bot-4)申请方法及简单调用代码示例
10月17日过后,估计很多人会看到类似的新闻,如图: 我看到这则新闻也是觉得非常感兴趣,于是本着“百闻不如一见”的实事求是的态度检索如何申请,没想到还真找到了ERNIE-Bot-4(俗称:文心一言4.0&a…...
年终好价节买什么好?这些数码好物闭眼入
大家是不是都没听说过好价节?直截了当地说,这其实就是原先的双十二购物狂欢节,只不过给它起了个新名字。不过,今年毕竟是首次改名,因此淘宝年终好价节的各种优惠,仍然是我们值得期待的!作为年前…...
webpack对项目进行优化
对项目进行优化是提高性能和效率的关键,以下是一些实用的Webpack优化技巧: 代码拆分(Code Splitting):将代码拆分为多个小块,按需加载。通过配置splitChunks插件,可以将公共代码提取到单独的文件…...
Python edge-tts库全部声音模型一览表
下面是edge-tts的声音模型,zh-CN为中文语音模型 Name: af-ZA-AdriNeural Gender: Female Name: af-ZA-WillemNeural Gender: Male Name: am-ET-AmehaNeural Gender: Male Name: am-ET-MekdesNeural Gender: Female Name: ar-AE-FatimaNeural Gender: Female N…...
网络编程相关面试题
目录 1.请解释一下什么是TCP协议的三次握手?2.TCP协议使用什么机制确保数据包的顺序和完整性?3.什么是UDP协议?它与TCP协议有什么不同?4.请解释一下什么是IP地址?为什么需要它?5.请解释一下什么是端口&…...
TCP_NODELAY与TCP通信效率
最近做tcp通信速度测试:主要流程如下所示: //client: while() { send data... recv data... //阻塞 }//server: while() { recv data... send data... } 当每次send数据量较小时,速度极慢!而send数据量较大时速度尚可。两者速度…...
ZooKeeper的分布式锁---客户端命令行测试(实操课程)
本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读测试来学习zookeeper。阅读本文之前,请先阅读----zookeeper 单机伪集群搭建简单记录(实操课程系列)。 阅读本文之前,请先阅读…...
工业4.0时代:图像识别驱动制造业智能生产的未来
在数字化革命的大潮中,工业4.0的到来标志着制造业将迎来全新的智能化时代。其中,图像识别技术作为一项核心技术,正引领着制造业实现了前所未有的智能生产。本文将深入探讨工业4.0时代下,图像识别是如何驱动制造业实现智能生产&…...
ROS vscode使用基本配置
1、创建ros工作空间 2、启动 vscode 3、vscode 中编译 ros ctrl shift B 调用编译,选择:catkin_make:build 修改.vscode/tasks.json 文件 4、 创建 ROS 功能包 选定 src ---> create catkin package 依次设置包名、添加依赖 5、C 实现 在功能包的 src 下…...
Android、ESP32、ESP8266的mqtt通信
Android activity_main <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http:/…...
Hive安装与配置
你需要掌握: 1.Hive的基本安装; 2.Mysql的安装与设置; 3.Hive 的配置。 注意:Hive的安装与配置建立在Hadoop已安装配置好的情况下。 hadopp安装与配置 Hive 的基本安装 从 官网 下载Hive二进制包,下载好放在/op…...
vuejs: 解决浏览器切换页面后setInterval计时器停止执行的问题
setInterval定时器是基于当前页面的,如果切换到其他页面,定时器会被暂停。这是浏览器的一种优化措施,以减少不必要的性能消耗。 如果需要在切换页面后继续执行定时器,可以使用Web Worker,它是在后台运行的程序…...
基于Web邮箱的邮件系统
题目: 基于web的邮件收发系统设计与实现 摘 要 计算机的应用已经越来越广泛,它从产生到完善已经差不多有50年左右的历史,更新换代速度非常快,在人们生活、工作中都发挥了不可替代的作用,几乎所有行业都离不开它,已经成…...
【Java学习笔记】75 - 算法优化入门 - 马踏棋盘问题
一、意义 1.算法是程序的灵魂,为什么有些程序可以在海量数据计算时,依然保持高速计算? 2.拿老韩实际工作经历来说,在Unix下开发服务器程序,功能是要支持上千万人同时在线,在上线前, 做内测,一…...
第二十章 多线程
20.2创建线程 20.2.1继承Thread类 Thread类是Java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建议Thread实例。 public class ThreadTest extedns Thread{} run方法格式: public void run(){} 20.1让线程循…...
vue2使用npm依赖包导出xlsx文件
1.下载依赖npm i xlsx 2.在根目录utils新建mergeXlxs.js /****/ import { utils, writeFile } from "xlsx";export default function mergeHeader(headers, data, datamerges, defaultTitle) {const ws utils.book_new();utils.sheet_add_aoa(ws, headers);//这里…...
java--多态
1.什么是多态 多态是在继承/实现的情况下的一种现象,表现为:对象多态、行为多态。 2.多态的具体代码体现 编译看左边,运行看右边 3.多态的前提 有继承/实现关系;存在父类引用子类对象;存在方法重写 4.多态的一个注…...
知识图谱06——将pdf中的表格(文字形式)保存至csv中
使用ubuntu22.04,anaconda 由于装环境装了一阵子,不确定装了哪些包了 可能的环境安装 conda install -c conda-forge pymupdf conda install -c conda-forge camelot-py conda install pandas #或者 pip install PyMuPDF pip install camelot-py[all] …...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
