剑指offer JZ77 按之字形顺序打印二叉树
Java JZ77 按之字形顺序打印二叉树
文章目录
- Java JZ77 按之字形顺序打印二叉树
- 一、题目描述
- 二、双栈法
- 三、队列+reverse()法
使用双栈法和队列+reverse()法解决剑指offer JZ77 按之字形顺序打印二叉树的问题。
一、题目描述
给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)
数据范围:0≤n≤1500,树上每个节点的val满足 ∣val∣<=1500。
要求:空间复杂度:O(n),时间复杂度:O(n)。
例如:给定的二叉树是{1,2,3,#,#,4,5}
该二叉树之字形层序遍历的结果是
[
[1],
[3,2],
[4,5]
]
示例1
输入:{1,2,3,#,#,4,5}
返回值:[[1],[3,2],[4,5]]
说明:如题面解释,第一层是根节点,从左到右打印结果,第二层从右到左,第三层从左到右。
示例2
输入:{8,6,10,5,7,9,11}
返回值:[[8],[10,6],[5,7,9,11]]
示例3
输入:{1,2,3,4,5}
返回值:[[1],[3,2],[4,5]]
二、双栈法
知识点:栈
栈是一种仅支持在表尾进行插入和删除操作的线性表,这一端被称为栈顶,另一端被称为栈底。元素入栈指的是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;元素出栈指的是从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
我们可以利用两个栈遍历这棵二叉树,第一个栈L_R从根节点开始记录第一层,然后依次遍历两个栈,遍历第一个栈时遇到的子节点依次加入第二个栈R_L中,即是第二层。
而遍历第二个栈R_L的时候因为是先进后出,因此就是逆序的,再将第二个栈R_L的子节点依次加入第一个栈L_R中。于是原本的逆序在第一个栈L_R中又变回了正序,如果反复交替直到两个栈都空为止。
public class Solution {public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
//一个二维的ArrayList,其中每个元素都是一个ArrayList类型的对象。ArrayList<ArrayList<Integer> > listAll = new ArrayList<>();
//如果是空,则直接返回空if (pRoot == null) {return listAll;}Stack<TreeNode> L_R = new Stack<TreeNode>(); //第一个栈,存放奇数行,从左打印的行Stack<TreeNode> R_L = new Stack<TreeNode>(); //第一个栈,存放偶数行,从右打印的行int level = 1; //记录数层L_R.push(pRoot); //放入根节点//循环遍历,直到某个奇数行或者偶数行为空while (!L_R.isEmpty() || !R_L.isEmpty()) {ArrayList<Integer> list = new ArrayList<>(); //二维矩阵中的行对象,用来短暂保存每层节点数//level++ % 2,level先取余后加,判断是否为奇数行if (level++ % 2 != 0) { while (!L_R.isEmpty()) { TreeNode node = L_R.pop(); //先将奇数层的节点保存进listlist.add(node.val);
//下一层是偶数层是从右打印,栈先进后出,所以先保存左子节点if (node.left != null) {R_L.push(node.left);}if (node.right != null) { //再保存右子节点R_L.push(node.right);}}} else { //如果是偶数行while (!R_L.isEmpty()) {TreeNode node = R_L.pop(); //先将偶数层的节点保存进listlist.add(node.val);System.out.println(node.val);
//下一层是奇数层是从左打印,栈先进后出,所以先保存右子节点,再保存左子节点if (node.right != null){L_R.push(node.right);}if (node.left != null){L_R.push(node.left);}}}listAll.add(list); //每层节点遍历后,将保存该层节点的list整体加入到 二维listAll中}return listAll; //遍历结束返回二维listAll}}
三、队列+reverse()法
知识点:队列
队列是一种仅支持在表尾进行插入操作、在表头进行删除操作的线性表,插入端称为队尾,删除端称为队首,因整体类似排队的队伍而得名。它满足先进先出的性质,元素入队即将新元素加在队列的尾,元素出队即将队首元素取出,它后一个作为新的队首。
reverse()函数
在Java中,Collections是一个工具类,提供了一系列静态方法,用于操作集合类。其中,reverse()函数是Collections类中的一个静态方法,用于对List类型的集合进行反转操作。该函数的定义如下:
public static void reverse(List<?> list)
其中,list表示要进行反转操作的List集合。该函数会将List集合中的元素按照相反的顺序重新排列。需要注意的是,该函数会直接修改原始的List集合,而不是返回一个新的List集合。
解题思路:
按照层次遍历按层打印二叉树的方式,每层分开打印,然后对于每一层利用flag标记,第一层为false,之后每到一层取反一次,如果该层的flag为true,则记录的数组整个反转即可。
但是难点在于如何每层分开存储,从哪里知晓分开的时机?
在层次遍历的时候,我们通常会借助队列(queue)。当根节点进入队列时,队列长度为1,第一层节点数也为1;若是根节点有两个子节点,push进队列后,队列长度为2,第二层节点数也为2;若是根节点一个子节点,push进队列后,队列长度为为1,第二层节点数也为1。由此,我们可知,每层的节点数等于进入该层时队列长度,因为刚进入该层时,这一层每个节点都会push进队列,而上一层的节点都出去了。
具体做法:
● step 1:首先判断二叉树是否为空,空树没有打印结果。
● step 2:建立辅助队列,根节点首先进入队列。不管层次怎么访问,根节点一定是第一个,那它肯定排在队伍的最前面,初始化flag变量。
● step 3:每次进入一层,统计队列中元素的个数,更改flag变量的值。因为每当访问完一层,下一层作为这一层的子节点,一定都加入队列,而再下一层还没有加入,因此此时队列中的元素个数就是这一层的元素个数。
● step 4:每次遍历这一层这么多的节点数,将其依次从队列中弹出,然后加入这一行的一维数组中,如果它们有子节点,依次加入队列排队等待访问。
step 5:访问完这一层的元素后,根据flag变量决定将这个一维数组直接加入二维数组中还是反转后再加入,然后再访问下一层。(奇数行反转,偶数行不反转)。
import java.util.*;
public class Solution {public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {TreeNode head = pRoot;ArrayList<ArrayList<Integer> > res = new ArrayList<ArrayList<Integer>>();if(head == null)//如果是空,则直接返回空listreturn res;//队列存储,进行层次遍历Queue<TreeNode> temp = new LinkedList<TreeNode>();temp.offer(head);TreeNode p;boolean flag = true;while(!temp.isEmpty()){//记录二叉树的某一行ArrayList<Integer> row = new ArrayList<Integer>(); int n = temp.size();//奇数行反转,偶数行不反转flag = !flag;//因先进入的是根节点,故每层节点多少,队列大小就是多少for(int i = 0; i < n; i++){p = temp.poll();row.add(p.val);//若是左右孩子存在,则存入左右孩子作为下一个层次if(p.left != null)temp.offer(p.left);if(p.right != null)temp.offer(p.right);}//奇数行反转,偶数行不反转if(flag) Collections.reverse(row);res.add(row);}return res;}
}
相关文章:
HTML5/CSS3粒子效果进度条 超炫酷进度条动画源码
特效介绍 之前我已经分享了几款效果很不错的CSS3进度条插件,比如CSS3 Loading进度条加载动画特效、CSS3 3D进度条按钮 18款精美样式。今天我再来分享一款很有特色的HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从…...
swagger简介
Swagger是一个用于设计、构建和文档化Web API的开源工具。它可以帮助开发人员设计和描述API,并生成易于理解的文档。通过Swagger,开发人员可以更方便地了解 API 的功能、参数、请求和响应等信息,提高了API的可读性和易用性。 Swagger提供了一套工具和规范,包括: 1.Swagger…...
文件IO常用的函数接口
本文归纳整理了常用的文件IO常见的函数接口及其用法,以供读者查阅 目录打开文件fopen关闭文件fclose数据读取字符读取:fgetc、getc、getchar按行读取:fgets、gets按块读取:fread写入文件字符写入:fputc、putc、putchar按行写入:fputs、puts按块写入:fwrite文件位置(光标位…...
第二证券|炒股是波段好还是长期好?
炒股长时间比波段好一些,其原因如下: 1、长时间持有费用低 投资者在生意过程中,需求交纳必定的佣金费用、过户费用、印花税,而长时间持有股票,减少生意次数,能够节省一笔生意成本。 2、短期持有容易卖飞…...
vue2项目升级到vue3经历分享4
后端重构,如果接口做好抽象封装,只需要考虑jar之间的兼容性问题,jdk版本不变,基本不用做太大的调整,但是前端就不一样,除了vue框架本身,css的调整,改起来更是让人头疼。前面写了vue2…...
FTP主动模式和被动模式(3)NAT对FTP的影响 - NAT ALG
NAT对FTP的影响 NAT环境下FTP存在的问题 FTP主动模式 FTP服务器在外部网络 在FTP主动模式下,如果网络中存在NAT,且FTP客户端在NAT内部网络中,那么FTP数据连接会出现下面的问题,如图:内部网络中的FTP客户端和外部网络中的FTP服务器端通过NAT地址转换是可以正常建立控制连接…...
剑指offer JZ77 按之字形顺序打印二叉树
Java JZ77 按之字形顺序打印二叉树 文章目录Java JZ77 按之字形顺序打印二叉树一、题目描述二、双栈法三、队列reverse()法使用双栈法和队列reverse()法解决剑指offer JZ77 按之字形顺序打印二叉树的问题。 一、题目描述 给定一个二叉树,返回该二叉树的之字形层序遍…...
【Azure 架构师学习笔记】-Azure Data Factory (5)-Managed VNet
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器 前言 PaaS服务默认都经过公网传输, 这对很多企业而言并不安全,那么就需要对其进行安全改…...
聚类算法层次聚类
###cluster.py #导入相应的包 import scipy import scipy.cluster.hierarchy as sch from scipy.cluster.vq import vq,kmeans,whiten import numpy as np import matplotlib.pylab as plt #生成待聚类的数据点,这里生成了20个点,每个点4维: pointsscipy.randn(20,4) #加一…...
大数据写入到Oracle数据库(批量插入数据)
开发中经常遇到批量插入数据的需求,为了提高开发效率大多会使用ORM架构,个别之处 才会手写SQL,我们使用C#.NET Core5.0开发,所以优先选择了微软的EF。 但是EF原生没有批量操作功能,需要自己扩展或使用第三方的扩展&am…...
【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字 p205 -- Java Version
题目链接:https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/ 1. 题目介绍(39. 数组中出现次数超过一半的数字) 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可…...
es-head插件插入查询以及条件查询(五)
es-head插件插入查询以及条件查询 1.es-head插件页面介绍 页面详细介绍 2.es-head查询语句 2.1.查询索引中的全部数据 curl命令交互,采用GET请求 语法格式: curl -XGET es地址:9200/索引名/_search?pretty [rootelaticsearch ~]# curl -XGET 192…...
数据挖掘(作业汇总)
目录 环境配置 实验1 数据 作业2 环境配置 实验开始前先配置环境 以实验室2023安装的版本为例: 1、安装anaconda:(anaconda自带Python,安装了anaconda就不用再安装Python了) 下载并安装 Anaconda3-2022.10-Windows-x86_64.ex…...
基于微信小程序的图书馆选座系统源码
开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 小程序 代码注释齐全,没有多余代码,适合学习(…...
特斯拉4D成像毫米波雷达与木牛科技早期开源的产品几乎一模一样?
近日,在中欧智能网联汽车协会秘书长林示的组织下,中益基金投资总监王子文考察了全球毫米波雷达领跑者—木牛科技。 考察过程中,木牛科技COO王卫向两位详细介绍了木牛科技具备怎样的全球毫米波雷达领跑者的科技硬实力,以及木牛科技…...
[golang gin框架] 10.Gin 商城项目介绍
一.商城项目介绍 1.详细功能介绍图 2.数据库 ER 图 需要用到的数据表举例 二.MVC架构搭建以及执行流程分析 1.关于 MVC 模式的简单介绍 Gin 不是一个 MVC 的框架,所有的代码都可以写在 main.go 中。当我们的项目比较大的时候, 所有代码写在一个文件里面…...
python@调用系统命令行@os.system@subprocess@标准输入输出@sys.stdin@sys.stdout@input@print
文章目录python调用系统命令行os.system标准输入输出sys.stdinsys.stdoutinputprint概要os.systemdemoswindows命令解释器ComSpecsubprocessrecommended🎈基本用法demos标准输入输出sys.stdininput()sys.stdin.inputinput()交互模式小结sys.stdoutsys.stdout.wirte(…...
15-哈希表
哈希表(Hash table),也称散列表,是一个能够将数值映射而成地址从而进行直接访问的数据结构,通过哈希表我们可以快速、迅捷地访问数据。 哈希表原理 假设我们拥有一个数x(也称关键值,key&#…...
【超详细文件操作(三)】C语言
作者:日出等日落 专栏:C语言 只有流过血的手指,才能弹出世间的绝唱。 ——泰戈尔 目录 1.文件的随机读写 1.1 fseek函数 1.1.1 下面使用fseek函数 1.2 ftell函数 1.3 rewind函数 …...
【数据分析之道-基础知识(四)】字典
文章目录专栏导读1、字典简介2、字典创建3、字典访问4、字典修改5、字典添加6、字典删除7、字典内置函数专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》,本专栏…...
【计组】RAM的深入理解
一、存储机理 RAM的实现逻辑有种,分别是触发器和电容。 SRAM(Static)DRAM(Dynamic)存储方式触发器电容破坏性读出否(触发器具有稳态,能够锁住0或1两种状态)是(电容需要…...
51单片机学习笔记_13 ADC
ADC 使得调节开发板上的电位器时,数码管上能够显示 AD 模块 采集电位器的电压值且随之变化。 开发板上有三个应用:光敏电阻,热敏电阻,电位器。 一般 AD 转换有多个输入,提高使用效率。 ADC 通过地址锁存与译码判断采…...
JVM 常量池
Class文件常量池 每个Class文件都会有一个单独的常量池,我们称为Class文件常量池,我们可以用javap命令反汇编Class文件,可以查看java编译器为我们生成的字节码。 CLass文件常量池存下内容: 字面量: 文本字符串(代码中用双引号包裹的字符串部分的值)被…...
Leetcode.1024 视频拼接
题目链接 Leetcode.1024 视频拼接 Rating : 1746 题目描述 你将会获得一系列视频片段,这些片段来自于一项持续时长为 time秒的体育赛事。这些片段可能有所重叠,也可能长度不一。 使用数组 clips描述所有的视频片段,其中 clips[i…...
彩色滤镜阵列CFA与Bayer滤镜
彩色滤镜阵列(CFA) 在彩色光电摄影中,可以通过分光,使用三个传感器分别捕获红、绿、蓝三个通道的颜色分量。但为了降低成本,绝大部分成像系统中采用单芯片 CMOS、CCD 传感器结合彩色滤镜阵列(Color Fiter Array&#…...
Unity和GAN实现AI绘画五等分的新娘、国家队02(附源码)
UnityGAN实现AI绘画五等分的新娘、国家队02附源码写在前面源码演示视频部分界面展示使用教程敬请期待其他写在后面写在前面 博主喜欢二次元,想着在读研期间做点对自己有意义的事,因此选择了动漫人物生成方向(呜呜呜,太感谢导师理解和支持了)…...
SpringBoot实现自己的日志服务
日志服务是作为软件开发架构的必备服务之一,一直都是我们所关注,所考虑的服务关键点,一个优秀的日志服务可以为项目的维护提供有力的支持,提高了系统的可靠性。 前言 如何设计一个优秀而又可靠的日志服务,是一直以来都…...
基于ssm流浪动物救助及领养管理系统(文档)024
大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…...
maven安装及配置(IDEA版)简洁
1.下载Maven:您可以从Maven官方网站(https://maven.apache.org/download.cgi)下载适合您操作系统的Maven版本,并解压缩到您想要安装的位置。 2.配置环境变量:将Maven的bin目录添加到PATH环境变量中,这样…...
最全Linux应用开发解析(持续更新)
一、文件IO 1.1 文件描述符 在 Linux 操作系统中的一切都被抽象成了文件,那么一个打开的文件是如何与应用程序进行对应呢? 解决方案是使用文件描述符(file descriptor,简称fd),当在进程中打开一个现有文…...
SpringBoot学习笔记下
文章目录1 接口架构风格 —RESTful1.1 REST1.2 在页面中或者ajax中,支持put,delete请求2 Spring Boot 集成 Redis2.1 redis起步依赖2.2 对比 StringRedisTemplate 和 RedisTemplate3 SpringBoot集成Dubbo3.1 看 SpringBoot继承Dubbo的文档3.2 公共项目7.…...
小米12/12S/13Pro手机MIUI14系统小黄鸟(HttpCanary)CA证书无法注入问题
很多用户获取ROOT是为了抓包,这里一般常常依赖一款名叫HttpCanary的软件,因软件 图标是一只小鸟,我们经常叫他小黄鸟。从日常使用上来看,黄鸟确实有抓包获取数据等 功能,也在多个手机上实践成功,网上相关教…...
SpringCloud学习笔记(四)Docker
一、Docker如何解决依赖的兼容问题 将应用的libs(函数库)、Deps(依赖)、配置与应用一起打包,形成可移植镜像Docker应用运行在容器中,使用沙箱机制,相互隔离 二、Dokcer如何解决开发、测试、生…...
SAP 批量修改 工艺路线 和 BOM
1、在运维的过程中经常会遇到用户需要批量更改组件,或者是批量更改数量,还是组件里面的一些标识,当处理这些批量数据处理的业务时,BOM的批量更改一个想到的就是CS20,但是CS20当BOM需要替换的时候就不是很适用。新增的组…...
基于OpenTelemetry实现可观测性-Part 4 Collector
译注:这是一个系列,共分成6部分,这是第4部分。翻译自:https://trstringer.com/otel-part4-collector/在上一篇博文中,我们讨论了如何使用 SDK 和追踪器提供者从进程获取遥测数据。存在很多不同类型的导出器,…...
STM32学习(十二)
软件定时原理 使用纯软件(CPU死等)的方式实现定时(延时)功能。 不精准:函数调用压栈进栈需要耗费额外的时间;流水线使得程序执行时间不确定。CPU死等。 定时器定时原理 使用精准的时基,通过…...
Python毕业设计推荐
今天给大家推荐4个基于python的毕业设计/课程设计 1 网上商城系统 这是一个基于pythonvue开发的商城网站,平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能…...
组装式交付-云巧 知多少
组装式交付-云巧 知多少组装式交付背景云巧什么是云巧呢?云巧的优势丰富的组件,提升代码复用全面的集成方式,支持模块化组装云原生标准,预集成阿里云产品云巧的构成云巧组件云巧资产市场云巧生态云巧工坊总结组装式交付背景 一直…...
「解析」牛客网-华为机考企业真题 41-60
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工…...
RPA机器人在信息化管理、报告生成实现自动化成为生态环境局新宠
随着人们对环境和自然资源的保护意识逐渐增强,我国在环保领域的投入力度也越来越大。然而,环境保护任务的繁重与复杂,也意味着环保执法机关需要更加高效、精准的手段来完成任务。这时,“机器人流程自动化”(简称RPA&am…...
关于线程池你了解些什么?
前言学习线程池的思维导图线程池是什么?它有什么用?虽然线程比进程更轻量级,但是每个进程所占的资源空间是有限,如果我们频繁创建和销毁线程也会消耗很多CPU资源,那么我们该如何解决这个问题呢?官方解释:线程池是一种多线程处理形式,其处理过程可以将多个任务添加到阻塞队列…...
基于MATLAB编程的萤火虫改进帝国竞争算法求解多目标优化,FA-ICA目标寻优
目录 背影 帝国竞争 基本定义 优点 萤火虫原理 改进思路 基于萤火虫改进帝国竞争多目标求解 代码 结果分析 展望 背影 多目标多参数优化是常遇到的优化问题,有很多传统算法可以求解,比如fiminmax,fmincon等,但是都容易陷入局部最优,本文用帝国竞争优化萤火虫算法进行多目…...
低代码开发:助力企业高效实现数字转型的一大利器
随着互联网、移动互联网、物联网等技术的迅速普及和应用,数字经济时代的到来,人们的生产、消费和生活方式都发生了巨大的变化,而传统企业也面临着巨大的挑战和机遇。 在数字经济时代,数据成为一种重要的生产要素。数据成为一种重要…...
centos7安装mysql并添加密码
网上找的教程有的是不能用,有的是改密码有问题,下面这个教程亲测可用 #安装wget,wget是Linux中的一个下载文件的工具 yum -y install wget #使用wget下载文件 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-com…...
大数据未来发展怎么样?
就目前情况来看,大数据行业前景不错薪资待遇好,也有越来越多的人选择大数据行业,各大名企对于大数据人才需求不断上涨。 大数据从业领域很宽广,不管是科技领域还是食品产业,零售业等都是需要大数据人才进行大数据的处…...
图书管理系统(考试样品)
一、执行下面的sql CREATE DATABASE bms CHARACTER SET utf8mb4;USE bms;DROP TABLE IF EXISTS tb_book;CREATE TABLE tb_book (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL,desc TEXT ,type_id INT DEFAULT NULL,PRIMARY KEY (id) ) ; INSERT INTO tb_book VA…...
树与二叉树(图示超详解哦)
这里写目录标题引言树与二叉树树的概念及结构树的表示二叉树特殊的二叉树二叉树的性质二叉树的表示顺序结构链式结构总结引言 在前面的一段时间里,我们学习了顺序表、链表、栈、队列的知识。其实这些顺序结构都是线性的,它们的逻辑结构都是一条线穿起来…...
【vue3】数据绑定,动态渲染class与style
数据绑定的一个常见需求场景是操纵元素的 CSS class 列表和内联样式(style)。因为 class 和 style 都是 attribute,我们可以和其他 attribute 一样使用 v-bind 将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,…...
axios使用
参考地址:https://github.com/axios/axios html CDN <script src"https://cdn.jsdelivr.net/npm/axios1.1.2/dist/axios.min.js"></script>或者 <script src"https://unpkg.com/axios1.1.2/dist/axios.min.js"></scrip…...
countup.js 数字动画
countup.js 数字动画1. 安装2. 参数3. Vue组件封装3.1 组件代码3.2 调用方式1. 安装 npm i countup.js2. 参数 项目Valuetargetstring, HTMLElement ,HTMLInputElement - id of html element, input, svg text element, or DOM element reference where counting occursendV…...
10个问题带你全面理解Linux性能优化
1. 为什么面试官喜欢考察性能优化问题? 面试官考察性能优化问题的目的可能并不是要你设计一个性能很高的系统,而是为了全方位考察一个面试者的知识背景和实践能力。 1) 性能优化涉及的知识面既需要深度,同时又需要一定的广度 从深度上来说…...
php使用yield处理大数据文件
1.概述 yield和return有点像,它是一个生成器,对PHP应用的性能有非常大的影响, 只有在调用的时候才会执行,并不产生多余的值,比如读取一个很大的文件或者计算大量的数据时,如果直接读取很有可能内存就爆了&a…...
数据更新 | CnOpenData法拍房数据
法拍房数据 一、数据简介 法拍房,即“法院拍卖房产”,是被法院强制执行拍卖的房屋 。当债务人(业主)无力履行借款合约或无法清偿债务时,而被债权人经司法程序向法院申请强制执行,将债务人名下房屋拍卖&…...
(一)kafka从入门到精通之初识kafka
一、发布订阅系统 在学习kafka之前,我们先来看看什么是发布订阅系统。 概念 数据的发送者不会直接把消息发送给接收者,这是发布与订阅消息系统的一个特点。发布者以某种方式对消息进行分类,接受者订阅它们,以便接受特定类型的消…...
stata17中double类型与float类型的区别(变量的存储格式和显示格式、数值运算出错、转换数值格式、字符型数据转换为数值型数据)
double类型与float类型区别 参考:变量的存储格式和显示格式 数值运算出错 因为营业总收入和其他业务收入都是字符型数据,所以使用real函数将其转换为数值型数据。 gen 主营业务收入 real(营业总收入)-real(其他业务收入)结果如下图所示:计…...
【JVS低代码配置平台】基于树形字典的纯配置实现左树右表
左树右表是我们在业务管理系统中常见的业务形态,如下图所示,树形结构用于多层级的数据的展示,列表页作为对应数据的横向行级展现。 实现树形的配置有两种模式,一种是根据树形字典配置(简单导入即可)&#x…...
[淘宝销量]—采集分析—实例参考▶
[干货] 本文爬取淘宝的搜索结果,包含标题、价格、原价、店铺、月销量字段。将结果保存成csv格式,并作简单分析。以手机为例。【淘宝销量】 用到的python库:selenium、urllib、pyquery、pandas。 1.爬取页面分析 1.1 获取URL 打开淘宝&am…...
ntfs文件系统的优势 NTFS文件系统的特性有哪些 ntfs和fat32有什么区别 苹果电脑怎么管理硬盘
对于数码科技宅在新购得磁盘之后,出于某种原因会在新的磁盘安装操作系统。在安装操作系统时,首先要对磁盘进行分区和格式化,而在此过程中,操作者们需要选择文件系统。文件系统也决定了之后操作的流程程度,一般文件系统…...
clang:在 Win10 上编译 MIDI 音乐程序(一)
先从 Microsoft C Build Tools - Visual Studio 下载 1.73GB 安装 "Microsoft C Build Tools“ 访问 Swift.org - Download Swift 找到 Windows 10:x86_64 下载 swift-5.10-RELEASE-windows10.exe 大约490MB 建议安装在 D:\Swift\ ,安装后大约占…...
Paddle 基于ANN(全连接神经网络)的GAN(生成对抗网络)实现
什么是GAN GAN是生成对抗网络,将会根据一个随机向量,实现数据的生成(如生成手写数字、生成文本等)。 GAN的训练过程中,需要有一个生成器G和一个鉴别器D. 生成器用于生成数据,鉴定器用于鉴定数据的准确性&…...
LeetCode 每日一题 ---- 【2079.给植物浇水】
LeetCode 每日一题 ---- 【2079.给植物浇水】 2079.给植物浇水方法:模拟-维护水的剩余量 2079.给植物浇水 方法:模拟-维护水的剩余量 模拟浇水和灌水的步骤就可以了,当剩余水大于等于需要浇的水,步数累加1即可,当剩余…...
2024年4月中国外汇储备小幅回落,黄金储备增幅收窄
随着美元指数的走强和全球资产价格的下跌,2024年4月末,中国的外汇储备规模出现了小幅回落。这一现象反映了当前国际金融市场的复杂性和不确定性,也对中国的经济政策提出了新的挑战。 根据国家外汇管理局公布的最新数据,截至2024年…...
JSP-EL-JSTL使用全解
JSP使用 JSP的注释HTML的注释Java代码的注释JSP注释 JSP的指令元素的概述JSP的指令元素的概述JSP指令元素作用JSP指令元素的语法JSP指令元素的分类 JSP的指令-page指令Page指令简介Page指令属性 JSP的指令-include指令和taglib指令Include指令属性 JSP的指令-taglib指令Taglib指…...
PXE远程部署CentOS系统
文章目录 在局域网内搭建PXE服务器PXE 启动组件PXE的优点实验一、搭建PXE服务器,实现远程部署CentOS系统环境准备server关闭防火墙安装组件准备 Linux 内核、初始化镜像文件及PXE引导文件配置启用TFTP 服务配置启动DHCP服务准备CentOS 7 安装源配置启动菜单文件 Cli…...
AI边缘计算盒子优势有哪些?如何实现低延迟处理?
AI边缘计算盒子作为一种集成人工智能技术的边缘计算设备,其优势主要体现在以下几个方面,万物纵横为您详细介绍: 1. 低延迟处理 AI边缘计算盒子靠近数据产生源头,能够即时处理数据,大幅减少数据传输至云端的时间&#…...
Vue中常用指令
Vue中的常用指令 Vue中的常用指令内容渲染指令条件渲染指令事件绑定指令内联语句事件处理函数给事件处理函数传参 属性绑定指令列表渲染指令v-for中的key 双向绑定指令 Vue中的常用指令 概念:指令 是 Vue 提供的带有 v- 前缀 的 特殊 标签属性。Vue 会根据不同的【…...
【JAVA |数组】数组定义与使用、常见的Arrays类介绍
目录 一、前言 二、数组的创建和初始化 三、数组的使用 四、数组是引用类型 1.JVM的内存分配 2.与引用类型变量 3.null 五、二维数组 六、Java中Arrays类的常用方法 1. Arrays.fill ->填充数组 2. Arrays.sort ->数组排序 3. Arrays.toString ->数组打印 …...
车载测试系列:车载蓝牙测试(三)
HFP测试内容与测试方法 2.3 接听来电:测试手机来电时,能否从车载蓝牙设备和手机侧正常接听】拒接、通话是否正常。 1、预置条件:待测手机与车载车载设备处于连接状态 2、测试步骤: 1)用辅助测试机拨打待测手机&…...