- 2024-11-22代码随想录——二叉树23、验证二叉搜索树
根据定义递归classSolution{public:booldfs(TreeNode*root,longlonglower,longlongupper){if(root==nullptr)returntrue;if(root->val<=lower||root->val>=upper)returnfalse;returndfs(root->left,lower,roo
- 2024-11-21C++指针函数体内部初始化需要注意的地方
有如下代码:voidchangePtr(int*p){*p=4;}intmain(){int*p=newint(5); changePtr(p);cout<<"*p:"<<*p<<endl;}以上代码我们都知道传递指针,函数改变了指针指向地址内的数据,函数体外部调用时p指向地址发生了改变,输出结果由5->4。但是在
- 2024-11-21二叉搜索树
应用BST通过优先级来构建一棵树,有利于我们系统的架构时,根据具体框架的优先级来便于构建系统的结构树,方便我们的查找和插入。性质左子树的元素均小于根节点右子树的元素均大于根节点左右子树均为二叉搜索树和堆的结构类似,只不过根和子树的大小关系的不同,但均是通过元素的大
- 2024-11-17实习冲刺练习 第二十三天
每日一题回文链表.-力扣(LeetCode)classSolution{public:boolisPalindrome(ListNode*head){if(head==nullptr)returnfalse;vector<int>v;while(head!=nullptr){//将链表的值存入数组中v.push_back(head->val);
- 2024-11-15114. 二叉树展开为链表
题目链接解题思路:对于这类递归问题,采用「宏观」思考模式。对于任意一个节点A,左子树先「展开为链表」,右子树再「展开为链表」,然后A节点,将左子树的结果,和右子树的结果,「串在一起」即可。左子树展开为链表,所以要返回两个节点,一个是链表的头,然后是链表的尾。代码/***
- 2024-11-15617. 合并二叉树
题目链接解题思路分情况讨论即可两个头都是空,直接返回空若root1为空,直接返回root2若roo2为空,直接返回root1若都不空,则二者相加,得到一个新节点A,然后二者的左子树去合并,得到一个新左子树new_left,二者的右子树去合并,得到一个新右子树new_right,然后新节点的左儿子就是new_
- 2024-11-14高级语言调用C接口(二)回调函数(1)
前言先说一下上一篇文章给出了各高级语言类型和C类型的对应关系,只包含基本类型,不包含结构体等复杂结构,高级语言只有常见的JAVA(Android通用)、C#、Python、Arkts(鸿蒙系)。其它语言如delphi、PB之类的古老语言目前使用的人非常稀少,默认不写了;还有js调用需要编译位wasm,但限制非
- 2024-11-13C++单例模式实现
单例模式(SingletonPattern)是软件设计模式中的一种,用于确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。一、初始版本(手动创建释放)一个类只有一个实例的实现方法:隐藏构造函数,是外界无法创造对象通过类静态成员函数getInstance返回静态局部对象指针(指向堆空间的
- 2024-11-11C++数据结构实验题目解析
目录题目:考点分析:难点1:就地逆置步骤:代码实现:核心代码详细解释:难点2:①非递减链表,②删除相同元素代码详解①:代码详解②:完整代码:大家好,今天我就来给大家分析一下我上期分享的题目的详细解析,编程的能力都是逐步提升的,但是思维的锻炼可以提前进行,这样有助于我们以后自
- 2024-11-11[题解]P11233 [CSP-S 2024] 染色
P11233[CSP-S2024]染色设\(f[i][j=0/1]\)表示涂到第\(i\)位,且第\(i\)为颜色为\(j\),则考虑用\(i\)之前能和\(i\)匹配的位置\(p\)进行转移。\(p\)需要满足下面的条件:\(a[p]=a[i]\)。\(p\)的颜色为\(j\)。\([p+1,i-1]\)之间的颜色全不为\(j\)。显然,我们只需要找满足条件的
- 2024-11-11101. 对称二叉树
题目链接解题思路检查一个二叉树是否轴对称,其实和根结点无关,而是和其左右子树有关。左子树头等于右子树头,然后递归调用,「左子树的右儿子」要等于「右子树的左儿子」并且「左子树的左儿子」要等于「右子树的左儿子」。代码/***Definitionforabinarytreenode.
- 2024-11-11代码随想录——二叉树-11.完全二叉树的节点个数
思路一、层序遍历,时间复杂度O(n)二、利用完全二叉树性质,时间复杂度O(logn*logn)(小于O(n))完全二叉树性质:若树深度为h,则前h-1层节点都达到最大值。第h层节点都集中在最左侧的位置完全二叉树要么1.是满二叉树2.最后一层没满满二叉树计算节点数太方便了,直接用公式2^h-1。
- 2024-11-08二叉树的递归遍历和迭代遍历
递归每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法!确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数,并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定终止条件:写完了递归算法,运行的时
- 2024-11-06【C++】踏上C++学习之旅(五):auto、范围for以及nullptr的精彩时刻(C++11)
文章目录前言1.auto关键字(C++11)1.1为什么要有auto关键字1.2auto关键字的使用方式1.3auto的使用细则1.4auto不能推导的场景2.基于范围的for循环(C++11)2.1范围for的语法2.2范围for的使用条件3.指针空值nullptr(C++11)3.1为什么会有nullptr这个关键字?前言本
- 2024-11-05条件语句中同时检查指针空检查和解引用,安全么
答案是安全的。 条件语句中同时进行空指针检查和解引用,但要确保解引用发生在检查之后,并且需要注意运算符的优先级。//例如,在C++中使用逻辑与运算符if(p!=nullptr&&*p==someValue){//这里是安全的,因为p的空指针检查在前//可以安全地访问*p} 在
- 2024-11-03C++——二叉树(进阶)
1.二叉搜索树1.1概念二叉搜索树又称二叉排序树,它或是一棵空树,又或是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二
- 2024-10-31每日计划-1031
1. 完成160.相交链表/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL){}*};*/classSolution{public:ListNode*getIntersectionNode(ListNode*head
- 2024-10-31Offer68题 Day6
面试题18.删除链表的节点/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNode(intx,ListNode*ne
- 2024-10-30Codeforces Round 981 (Div. 3) ABCDE
CodeforcesRound981(Div.3)ABCDEA.SakurakoandKosuke藕是看样例直接猜了结论
- 2024-10-29算法刷题记录(day5)
LC160.相交链表题目描述:给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。classSolution{public:ListNode*getIntersectionNode(ListNode*headA,ListNode*headB){if(head
- 2024-10-29C++连接SqlServer
C++连接SqlServer连接外加查询sqlConnection.h#pragmaonce#ifndefSQLCONNECTION_H#defineSQLCONNECTION_H#include<iostream>#include<windows.h>#include<sql.h>#include<sqlext.h>#include<fstream>#include<string>//
- 2024-10-28闯关leetcode——222. Count Complete Tree Nodes
大纲题目地址内容解题代码地址题目地址https://leetcode.com/problems/count-complete-tree-nodes/description/内容Giventherootofacompletebinarytree,returnthenumberofthenodesinthetree.AccordingtoWikipedia,everylevel,exceptpos
- 2024-10-26HarmonyOS:Node-API典型场景开发(2)
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/18504462➤如果链接不是为敢技术的博客园地址,则可能是
- 2024-10-26C++/CLI使用Office.Interop库创建excel,同时解决写入速度慢的问题
boolWriteExcelFile_OfficeInterop(String^path,DataSet^dt, conststd::vector<std::string>&sheetName,boolhideColumnName) { //Ifthefilealreadyexists,deleteitandthengeneratefile if(System::IO::File::Exists(path)) { try
- 2024-10-26如何利用递归和迭代构建二叉树?详解题解
文章目录根据二叉树创建字符串思路代码二叉树的层序遍历思路代码二叉树的最近公共祖先思路代码二叉搜索树与双向链表思路代码从前序与中序遍历序列构造二叉树思路代码总结根据二叉树创建字符串题目:样例:可以看见,唯一特殊的就是左子树,当右子树存在的时候左