个数offer

【剑指Offer】21、栈的压入、弹出序列

# 【剑指Offer】21、栈的压入、弹出序列 **题目描述:** 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1 ......
序列 Offer

《剑指Offer》-40-最小的 K 个数

如果直接调用 sort API 然后要几个打印几个就没意思了,应该是和某个排序的内部过程结合 首先排除O(^N2^)的低效率排序算法,最先想到的其实是堆排序,小根堆,但是需要额外的空间 其次像快排、归并这样的也不合适…… 我想到了可以这样,快排第一轮划分之后,将部分舍去…… 应该就是这样了,堆排序或 ......
个数 Offer 40

Python练习:输入一个整数,输出该数二进制表示中1的个数。

Python3 整数对象存储为无符号数加上符号位标志,所以不存在“负数”补码形式,因此,计算 “1” 的数量需要按去符号后的无符号数: cnt=bin(n).count('1') 另外,Python3 无长整,整数长度原则上不限,所以不能以假定的 32 位处理。 补码+原码=2**32 1 # -* ......
二进制 整数 个数 Python

剑指 Offer 55 - I. 二叉树的深度(简单)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230819131822389-690048198.png) ``` class Solution { public: void traversal(TreeNode* ......
深度 Offer 55

剑指 Offer 54. 二叉搜索树的第k大节点

方法一: 由于是有序的平衡二叉树,因此是中序。根据dfs中序迭代求得递增排序后,再反转就可求得结果。 class Solution { public: vector<int> tmp; int kthLargest(TreeNode* root, int k) { // if(root != NUL ......
节点 Offer 54

【剑指Offer】20、包含min函数的栈

# 【剑指Offer】20、包含min函数的栈 **题目描述:** 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 **解题思路:** 解法一:使用两个stack,一个为数据栈,另一个为辅助栈。数据栈用于存储所有数据,每次压栈的最小元素(之前的 ......
函数 Offer min

【剑指Offer】5、用两个栈实现队列

# 【剑指Offer】5、用两个栈实现队列 **题目描述:** 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 **解题思路:** 本题的基本意图是:用两个后入先出的栈来实现先入先出的队列。对于这个问题,我们可以通过一个实例来进行具体分析。不难得出相应的规律:有 ......
队列 两个 Offer

【剑指Offer】66、机器人的运动范围

# 【剑指Offer】66、机器人的运动范围 **题目描述:** 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 ......
机器人 范围 机器 Offer

剑指 Offer 36. 二叉搜索树与双向链表

本题比较重要的有两点: 1.一般认为有序的二叉搜索树,都是中序遍历。 2.中序遍历的递归顺序,得到的就是排好序的,就是链表的顺序,因此只需管遍历的过程中的链表指向即可。 class Solution { public: // pre将来指向尾节点,head指向头节点 Node *pre = null ......
双向 Offer 36

剑指 Offer 16. 数值的整数次方(中等)

题目 ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230818213231189-1248629502.png) ``` class Solution { public: double traversal(double ......
整数 数值 Offer 16

剑指 Offer 34. 二叉树中和为某一值的路径

dfs class Solution { public: vector<vector<int>> res; vector<int> tmp; void dfs(TreeNode *node, int target) { if(node == nullptr ) return; target -= n ......
路径 Offer 34

计算二叉树双分支结点的个数

结点有左右孩子,count++; 一个是递归算法,没咋明白,书上的,三行代码。 一个是利用层次遍历,出队元素有左右孩子时count++。感觉层次遍历可以解决好多问题 #include <stdio.h> #include <stdlib.h> #define MaxSize 100 typedef ......
结点 分支 个数

【剑指Offer】65、矩阵中的路径

# 【剑指Offer】65、矩阵中的路径 **题目描述:** 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 ......
矩阵 路径 Offer

【剑指Offer】62、二叉搜索树的第k个结点

# 【剑指Offer】62、二叉搜索树的第k个结点 **题目描述:** 给定一棵二叉搜索树,请找出其中的第k小的结点。例如(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 **解题思路:** 本题实际上比较简单,主要还是考察对树的遍历的理解,只要熟练掌握了树的三种遍历方式及 ......
结点 Offer

【剑指Offer】61、序列化二叉树

# 【剑指Offer】61、序列化二叉树 **题目描述:** 请实现两个函数,分别用来序列化和反序列化二叉树。 **解题思路:** 序列化是指将结构化的对象转化为字节流以便在网络上传输或写到磁盘进行永久存储的过程。反序列化是指将字节流转回结构化的对象的过程,是序列化的逆过程。 受第4题:重建二叉树的 ......
序列 Offer

剑指 Offer 07. 重建二叉树(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230817211855356-794842981.png) ``` class Solution { //本题思路:利用中序遍历,从前序遍历中找到左、右子树的根节点 ......
Offer 07

linux查询操作系统信息,CPU物理个数,CPU核心数,逻辑CPU数,内存信息查询,硬盘信息查询

目录 * [一.前言](about:blank#%E4%B8%80%E5%89%8D%E8%A8%80) * [二.关于服务器基本配置](about:blank#%E4%BA%8C%E5%85%B3%E4%BA%8E%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9F%BA%E6%9C ......
信息 CPU 个数 逻辑 物理

《剑指Offer》-31-栈的压入、弹出序列

经典的选择题,但是这里要求用代码实现 我们可以根据 pop 结果去模拟这个过程,如果能够拟合,就是 true 什么情况下拟合成功? 两个指针都指向了数组末尾,同时栈空 太复杂了,条件能否简化一点? 什么时候拟合失败? pushed 指针指向末尾全部压入栈中,但是poped 数组指针卡住了,不匹配导致 ......
序列 Offer 31

一条提示词等同于多少个数据点?

> 数据点(data points)通常用于描述单个信息单位或观测值,在本文中,它被用来量化“提示词”方法相对于传统方法的效率和效果。文章比较了两种训练(微调)机器学习模型的方法:一种是使用提示 (prompts),本文也称之“提示词”,另一种是使用传统的分类器头 (classifier heads ......
据点 个数

《剑指Offer》-16-数值的整数次方

将 n 次相乘的幂运算转化为 log2N 次平方运算,并且采用**递归**算法 原书给出的==最优算法本身不处理负数,是外层函数处理的== ```cpp double myPow(double x, int n) { double res = pow(x, abs(n)); if (n > 1);/ ......
整数 数值 Offer 16

【剑指Offer】60、把二叉树打印成多行

# 【剑指Offer】60、把二叉树打印成多行 **题目描述:** 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 **解题思路:** 本题可类比第22题:从上往下打印二叉树[https://www.cnblogs.com/bujidao1128/p/17627566.html]( ......
Offer

【剑指Offer】59、按之字形顺序打印二叉树

# 【剑指Offer】59、按之字形顺序打印二叉树 **题目描述:** 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 **解题思路:** 这道题仍然是二叉树的遍历,相当于层次遍历,可以和第22题:从上 ......
字形 顺序 Offer

【剑指Offer】58、对称的二叉树

# 【剑指Offer】58、对称的二叉树 **题目描述:** 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 **解题思路:** 本题判断一棵树是不是对称的,和第18题可以对比分析:二叉树的镜像,和LeetCode第101题:101. ......
Offer

剑指 Offer 37. 序列化二叉树(困难)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230816211423205-318109193.png) ``` class Codec { public: void rserialize(TreeNode* r ......
序列 Offer 37

【剑指Offer】39、平衡二叉树

# 【剑指Offer】39、平衡二叉树 **题目描述:** 输入一棵二叉树,判断该二叉树是否是平衡二叉树。这里的定义是:如果某二叉树中任意结点的左、右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 **解题思路:** 首先对于本题我们要正确理解,一般情况下,平衡二叉树就是AVL树,它首先是二叉搜 ......
Offer

【剑指Offer】57、二叉树的下一个结点

# 【剑指Offer】57、二叉树的下一个结点 **题目描述:** 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 **解题思路:** 本题解决起来并不是很困难,主要是分析清楚所有可能的不同情况。对于中序遍历序列 ......
结点 Offer

【剑指Offer】38、二叉树的深度

**题目描述:** 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 **解题思路:** 本题相对比较简单。根据二叉树深度的定义,我们有以下理解:如果一棵树只有一个结点,那么它的深度为1。如果根结点只有左子树而没有右子树,那么树 ......
深度 Offer

剑指 Offer 38. 字符串的排列(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230815211654949-430689338.png) ``` class Solution { public: vector result; string pa ......
字符串 字符 Offer 38

2个数组删除

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>在一个数组中删除另一个数组存在的值</title> <style type="text/css"> html,body{width:100%;height:10 ......
个数

【剑指Offer】26、二叉搜索树与双向链表

**题目描述:** 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 **解题思路:** 首先要理解此题目的含义,在双向链表中,每个结点都有前后两个指针;二叉树中,每个结点都有两个指向子结点的左右指针,同时,二叉搜索树树也是一种排序的 ......
双向 Offer