月度归档: 2023 年 4 月

21 篇文章

LeetCode | 218.天际线问题
  城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的天际线 。 每个建筑物的几何信息由数组 buildings …
c++ static 关键字
有五种用法 静态成员变量 不需要声明对象就可以访问 内存分配在全局数据区,只分配一次内存,所有的对象共享静态成员变量 静态成员变量必须初始化,初始化时分配内存 遵循 public、private、pr…
c++ const 关键字
作用 修饰变量,说明该变量不可改变 修饰指针,分为指向指针的常量 (pointer to const) 和 自身是常量的指针 (const pointer) 修饰引用,指向常量的引用 (referen…
LeetCode | 62.不同路径
一个机器人位于一个 m x n 网格的左上角(坐标 (0, 0))。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(坐标 (m - 1, n - 1))。 问总共有多少条不同的路径?…
LeetCode | 22.括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())&q…
c++ 静态绑定和动态绑定
  C++ 中有两种不同的函数调用方式:静态绑定和动态绑定。 静态绑定   静态绑定是指在编译时确定调用哪个函数。也就是说,编译器会根据函数调用的名称和参数类型…
c++ 静态编译和动态编译
  C++是一种高级编程语言,它支持两种不同的编译方式:静态编译和动态编译。 静态编译   静态编译是将程序代码和库函数一起编译成一个可执行文件的过程。在静态编…
Qt 多线程 QThread、QThreadPool使用场景
QThread 和 QRunnable 都是 Qt 框架中用于多线程编程的类,它们之间有以下不同点: 继承关系不同 QThread 继承自 QObject 类,而 QRunnable 没有父类。 实现…
设计模式之单例模式
单例模式(Singleton Pattern) 一种创建型设计模式,用于确保一个类只能创建一个实例,并提供一个全局访问该实例的方式。 定义一个单例类: 私有化它的构造函数,以防止外界创建单例类的对象;…
设计模式之工厂模式
简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,用于封装对象的创建逻辑。在简单工厂模式中,创建对象的逻辑被封装在一个工厂类中,而不是在客户端直接创建对象…
LeetCode | 113.路径总和 Ⅱ
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = […
LeetCode | 109.有序链表转换二叉搜索树
给定一个单链表的头节点  head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差不超过 1。 示例 1: 输入…
c++ 智能指针
c++ 有三种智能指针: shared_ptr weak_ptr unique_ptr 头文件 \<memory> 关于 auto_ptr 指针 C++98 提供了 auto_ptr 模板的解决…
剑指 Offer 68 – II.二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深…
Qt 开发软件是否需要开源
GPL 协议的解释 GPL(GNU通用公共许可证)是一种自由软件许可证,由自由软件基金会(Free Software Foundation,简称FSF)创建并维护。它是一种开源许可证,旨在保护软件用户…
LeetCode | 501.二叉搜索树中的众数
给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数,可以按 任意顺序 返回。 假定 BST 满足如下定义…