当前位置: 首页 > news >正文

【每日一题】1457. 二叉树中的伪回文路径-2023.11.25

题目:

1457. 二叉树中的伪回文路径

给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。

请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。

示例 1:

输入:root = [2,3,1,3,1,null,1]
输出:2 
解释:上图为给定的二叉树。总共有 3 条从根到叶子的路径:红色路径 [2,3,3] ,绿色路径 [2,1,1] 和路径 [2,3,1] 。在这些路径中,只有红色和绿色的路径是伪回文路径,因为红色路径 [2,3,3] 存在回文排列 [3,2,3] ,绿色路径 [2,1,1] 存在回文排列 [1,2,1] 。

示例 2:

输入:root = [2,1,1,1,3,null,null,null,null,null,1]
输出:1 
解释:上图为给定二叉树。总共有 3 条从根到叶子的路径:绿色路径 [2,1,1] ,路径 [2,1,3,1] 和路径 [2,1] 。这些路径中只有绿色路径是伪回文路径,因为 [2,1,1] 存在回文排列 [1,2,1] 。

示例 3:

输入:root = [9]
输出:1

提示:

  • 给定二叉树的节点数目在范围 [1, 105] 内
  • 1 <= Node.val <= 9

解答:

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int pseudoPalindromicPaths (TreeNode root) {int[] counter=new int[10];return dfs(root,counter);}public int dfs(TreeNode root,int[] counter){if(root==null){return 0;}counter[root.val]++;int res=0;if(root.left==null&&root.right==null){if(isPseudoPalindrome(counter)){res=1;}}else{res=dfs(root.left,counter)+dfs(root.right,counter);}counter[root.val]--;return res;}public boolean isPseudoPalindrome(int[] counter){int odd=0;for(int value:counter){if(value%2==1){odd++;}}return odd<=1;}
}

结果:

相关文章:

【每日一题】1457. 二叉树中的伪回文路径-2023.11.25

题目&#xff1a; 1457. 二叉树中的伪回文路径 给你一棵二叉树&#xff0c;每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的&#xff0c;当它满足&#xff1a;路径经过的所有节点值的排列中&#xff0c;存在一个回文序列。 请你返回从根到叶子节点的所有路…...

能让PDF看起来像是扫描件的Look Scanned

什么是 Look Scanned ? Look Scanned 是一个能够让 PDF 看起来就像是扫描件一样的纯前端网站。你再也不需要麻烦地打印之后扫描了&#xff0c;你所需要的就是鼠标点几下。 这是个挺有意思的软件&#xff0c;但是老苏不确定什么场景下会用到这个软件&#xff0c;如果不想自己搭…...

RT-DETR 更换损失函数之 SIoU / EIoU / WIoU / Focal_xIoU

文章目录 更换方式CIoUDIoUEIoUGIoUSIoUWIoUFocal_CIoUFocal_DIoUFocal_EIoUFocal_GIoUFocal_SIoU提示更换方式 第一步:将ultralytics/ultralytics/utils/metrics.py文件中的bbox_iou替换为如下的代码:class...

代码随想录算法训练营第四十六天 | 139.单词拆分,多重背包,背包问题总结

目录 139.单词拆分 多重背包 背包问题总结 01背包 完全背包 多重背包 139.单词拆分 题目链接&#xff1a;139. 单词拆分 不要求字典中的单词全部使用&#xff0c;但是要求拆分的单词拆分成的每一个子串都是字典中的单词。 &#xff08;1&#xff09;dp[ i ] 表示前 i 个字符组成…...

opencv-Canny 边缘检测

Canny边缘检测是一种经典的图像边缘检测算法&#xff0c;它在图像中找到强度梯度的变化&#xff0c;从而识别出图像中的边缘。Canny边缘检测的优点包括高灵敏度和低误检率。 在OpenCV中&#xff0c;cv2.Canny() 函数用于执行Canny边缘检测。 基本语法如下&#xff1a; edges…...

案例023:基于微信小程序的童装商城的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…...

Ansible的循环:loop,with_<lookup>和until

环境 管理节点&#xff1a;Ubuntu 22.04控制节点&#xff1a;CentOS 8Ansible&#xff1a;2.15.6 循环的方法 loopwith_<lookup>until 用这几种方式都可以实现循环。其中&#xff0c; loop 是推荐的用法&#xff0c;在很多时候能够替换 with_<lookup> 。 loop…...

点云 surface 方法总结

点云的表面方法是指通过点云数据来估计和重建物体或场景的表面几何形状。下面总结了几种常见的点云表面方法&#xff1a; 三角化&#xff1a;三角化是最常用的点云表面重建方法之一。它将点云中的点连接成三角形网格&#xff0c;从而重建出物体或场景的表面。常见的三角化算法…...

深入探索Linux文件系统:属性、路径与隐藏之谜

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Linux系统理论 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言&#x1f324;️文件的组成☁️文件属性☁️文件内容☁️注意事项 &#x1f324;️路…...

梯度详解与优化实战

什么是梯度 对所有自变量求偏微分构成的向量&#xff0c;它是一个向量&#xff08;有大小和函数值增长方向&#xff09; 导数是一个标量 找最小值点坐标的案例 import torchimport numpy as np import matplotlib.pyplot as plt def himmelblau(x):return (x[0]**2x[1]-11)…...

OSG编程指南<十二>:OSG二三维文字创建及文字特效

1、字体基础知识 适当的文字信息对于显示场景信息是非常重要的。在 OSG 中&#xff0c;osgText提供了向场景中添加文字的强大功能&#xff0c;由于有第三方插件 FreeType 的支持&#xff0c;它完全支持TrueType 字体。很多人可能对 FreeType 和 TrueType 还不太了解&#xff0c…...

visionOS空间计算实战开发教程Day 6 拖拽和点击

在之前的学习中我们在空间中添加了3D模型&#xff0c;但在初始摆放后就无法再对其进行移动或做出修改。本节我们在​​Day 5​​显示和隐藏的基础上让我们模型可以实现拖拽效果&#xff0c;同时对纯色的立方体实现点击随机换色的功能。 首先是入口文件&#xff0c;无需做出改变…...

C# APS.NET CORE 6.0 WEB API IIS部署

1.创建 APS.NET CORE6.0 WEB API项目 默认选项即可 源代码&#xff1a; 项目文件展开&#xff1a; launchSettings.json {"$schema": "https://json.schemastore.org/launchsettings.json","iisSettings": {"windowsAuthentication"…...

C/C++ 常用加密与解密算法

计算机安全和数据隐私是现代应用程序设计中至关重要的方面。为了确保数据的机密性和完整性&#xff0c;常常需要使用加密和解密算法。C是一种广泛使用的编程语言&#xff0c;提供了许多加密和解密算法的实现。本文将介绍一些在C中常用的加密与解密算法&#xff0c;这其中包括Xo…...

从Qt源码的角度分析Qt对象树与内存管理模式

作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 一、Qt对象树(Object Tree)和父子关系二、源码角度:QObject的内存管理构造函数析构函数addChild() 和 removeChild()三、C++模拟实现Qt的对象树内存管理模式Qt框架提供了一…...

MySQL与Redis如何保证数据的一致性

文章目录 MySQL与Redis如何保证数据的一致性&#xff1f;不好的方案1. 先写 MySQL&#xff0c;再写 Redis2. 先写 Redis&#xff0c;再写 MySQL3. 先删除 Redis&#xff0c;再写 MySQL 好的方案4. 先删除 Redis&#xff0c;再写 MySQL&#xff0c;再删除 Redis5. 先写 MySQL&am…...

micropython - espnow

espnow这个东西可以很简单的进行多设备近距离互联&#xff0c;连握手都不用注册一下就能发信息 目前8266那个8角的刷20231105的1M的固件可以运行 8266目前没有信号强度功能所以我自己写的类强度返回为0 我写的类实例化后最后注册谁发消息就是给谁而接收端则是什么都接&#xff…...

京东数据采集(京东数据运营):怎样快速获取京东市场大数据?

相信京东平台的很多品牌方们都有做数据分析的需求&#xff0c;但面对多而杂的市场数据&#xff0c;很多运营者都没有思路。单依靠肉眼来看&#xff0c;很多商品的类目、销售成绩、价格分布等运营者也未必清楚。 其实对于京东平台上市场数据的获取&#xff0c;品牌可以直接借助一…...

​重生奇迹mu迷宫攻略​

重生奇迹mu迷宫是一种比较有挑战性的游戏玩法&#xff0c;需要一定的技巧和策略才能完成。以下是一些基本的攻略和技巧&#xff1a; 了解每个迷宫的特点&#xff1a;不同的迷宫有不同的规则和特点&#xff0c;需要根据迷宫的特点来制定合理的策略。在进入迷宫前可以先了解一下…...

[网络] 4. HTTP/1.1 相比 HTTP/1.0 提高了什么性能?

HTTP/1.1 相比 HTTP/1.0 性能上的改进 ● 使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。 ● 支持管道&#xff08;pipeline&#xff09;网络传输&#xff0c;只要第一个请求发出去了&#xff0c;不必等其回来&#xff0c;就可以发第二个请求出去&#xff0c;可以减…...

终极指南:Google Cloud Go 客户端库的版本管理与向后兼容策略

终极指南&#xff1a;Google Cloud Go 客户端库的版本管理与向后兼容策略 【免费下载链接】google-cloud-go Google Cloud Client Libraries for Go. 项目地址: https://gitcode.com/GitHub_Trending/go/google-cloud-go Google Cloud Client Libraries for Go 是连接 G…...

如何使用EasyMocap实现精准人体关键点检测与3D运动捕捉:从2D到3D的完整指南

如何使用EasyMocap实现精准人体关键点检测与3D运动捕捉&#xff1a;从2D到3D的完整指南 【免费下载链接】EasyMocap Make human motion capture easier. 项目地址: https://gitcode.com/gh_mirrors/ea/EasyMocap EasyMocap是一款强大的开源人体运动捕捉工具&#xff0c…...

Vivado+Vitis双剑合璧:从零构建Zynq-7020的SD卡固化系统(避坑‘导出硬件平台’与‘FSBL’)

Vivado与Vitis协同设计&#xff1a;Zynq-7020 SD卡启动全流程精解 在嵌入式系统开发中&#xff0c;Xilinx Zynq系列SoC因其ARM处理器与FPGA的紧密结合而广受欢迎。然而&#xff0c;从硬件设计到最终系统启动的完整流程中&#xff0c;Vivado与Vitis工具链的协同工作往往成为开发…...

手把手教你用MFRC522射频模块实现门禁系统(附完整代码)

手把手教你用MFRC522射频模块实现门禁系统&#xff08;附完整代码&#xff09; 在智能家居和安防领域&#xff0c;射频识别&#xff08;RFID&#xff09;技术因其非接触式交互特性而广受欢迎。MFRC522作为一款高性价比的13.56MHz射频模块&#xff0c;配合Arduino或STM32等开发板…...

JDK1.8环境下的AI应用开发:Phi-4-mini-reasoning与传统Java系统的集成案例

JDK1.8环境下的AI应用开发&#xff1a;Phi-4-mini-reasoning与传统Java系统的集成案例 1. 当老系统遇上新智能&#xff1a;传统Java的AI升级之路 "我们的核心业务系统还在用JDK1.8&#xff0c;难道就与AI无缘了吗&#xff1f;"这是许多企业技术负责人面临的现实困惑…...

从理论到实践:无人驾驶轨迹跟踪算法(Stanley、LQR、MPC)的Carsim/Simulink仿真对比与工程实现

1. 无人驾驶轨迹跟踪算法概述 第一次接触无人驾驶轨迹跟踪算法时&#xff0c;我被各种专业术语搞得晕头转向。直到真正动手在Carsim和Simulink里调试这些算法&#xff0c;才发现它们其实就像汽车的方向盘——用不同的方式引导车辆沿着预定路线行驶。轨迹跟踪算法的核心任务很简…...

如何在普通电脑上运行AI绘画神器:6GB显存玩转FLUX.1-dev FP8量化模型终极指南

如何在普通电脑上运行AI绘画神器&#xff1a;6GB显存玩转FLUX.1-dev FP8量化模型终极指南 【免费下载链接】flux1-dev 项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/flux1-dev 想要在普通电脑上体验专业级AI绘画的魅力吗&#xff1f;FLUX.1-dev FP8量化模型…...

华为OD机试 - 符合条件的元组个数 - 递归、双指针(Java 新系统 100分)

华为OD机试 新系统 题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;每一题都有…...

BEAST 2 贝叶斯进化分析:从新手到专家的完整指南

BEAST 2 贝叶斯进化分析&#xff1a;从新手到专家的完整指南 【免费下载链接】beast2 Bayesian Evolutionary Analysis by Sampling Trees 项目地址: https://gitcode.com/gh_mirrors/be/beast2 BEAST 2&#xff08;Bayesian Evolutionary Analysis by Sampling Trees&a…...

mysql如何配置表空间独立存储_使用innodb_file_per_table

已启用 innodb_file_per_table 时新建表有独立 .ibd 文件&#xff0c;否则数据存于 ibdata1&#xff1b;执行 SELECT innodb_file_per_table 或 SHOW VARIABLES LIKE innodb_file_per_table 查看&#xff0c;需在 [mysqld] 段配置文件中设置并重启才永久生效。开启 innodb_file…...