Android学习总结之算法篇五(字符串)
字符串求回文字串数目
public class CountPalindromicSubstrings {/*** 此方法用于计算字符串中回文子串的数量* @param s 输入的字符串* @return 回文子串的数量*/public static int countSubstrings(String s) {// 若输入字符串为空或长度为 0,直接返回 0if (s == null || s.length() == 0) {return 0;}// 用于记录回文子串的数量int count = 0;// 获取字符串的长度int n = s.length();// 遍历字符串中的每个字符for (int i = 0; i < n; i++) {// 以单个字符为中心进行扩展,统计以该字符为中心的回文子串数量count += expandAroundCenter(s, i, i);// 以两个相邻字符为中心进行扩展,统计以这两个相邻字符为中心的回文子串数量count += expandAroundCenter(s, i, i + 1);}return count;}/*** 以给定的左右索引为中心向两边扩展,计算以该中心的回文子串数量* @param s 输入的字符串* @param left 左索引* @param right 右索引* @return 以该中心的回文子串数量*/private static int expandAroundCenter(String s, int left, int right) {// 用于记录以该中心的回文子串数量int count = 0;// 当左右索引在字符串范围内,并且对应字符相等时,继续扩展while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {// 每找到一个回文子串,数量加 1count++;// 左索引向左移动一位left--;// 右索引向右移动一位right++;}return count;}public static void main(String[] args) {// 定义一个示例字符串String s = "abc";// 调用 countSubstrings 方法计算回文子串的数量,并输出结果System.out.println("回文子串的数目是: " + countSubstrings(s));}
}
环形链表总集
// 定义链表节点类,每个节点包含一个整数值和一个指向下一个节点的引用
class ListNode {int val;ListNode next;// 构造函数,用于初始化节点的值ListNode(int x) {val = x;next = null;}
}public class CircularLinkedListAlgorithms {/*** 判断链表是否有环* @param head 链表的头节点* @return 如果链表有环返回 true,否则返回 false*/public static boolean hasCycle(ListNode head) {// 若链表为空或者只有一个节点,不可能存在环,直接返回 falseif (head == null || head.next == null) {return false;}// 慢指针,每次移动一步ListNode slow = head;// 快指针,每次移动两步ListNode fast = head;// 当快指针和其下一个节点都不为空时,继续循环while (fast != null && fast.next != null) {// 慢指针移动一步slow = slow.next;// 快指针移动两步fast = fast.next.next;// 如果慢指针和快指针相遇,说明链表存在环if (slow == fast) {return true;}}// 快指针到达链表末尾,说明链表不存在环return false;}/*** 找到环形链表的入环点* @param head 链表的头节点* @return 入环点的节点,如果链表无环则返回 null*/public static ListNode detectCycle(ListNode head) {// 若链表为空或者只有一个节点,不可能存在环,直接返回 nullif (head == null || head.next == null) {return null;}// 慢指针,每次移动一步ListNode slow = head;// 快指针,每次移动两步ListNode fast = head;// 标记链表是否有环boolean hasCycle = false;// 当快指针和其下一个节点都不为空时,继续循环while (fast != null && fast.next != null) {// 慢指针移动一步slow = slow.next;// 快指针移动两步fast = fast.next.next;// 如果慢指针和快指针相遇,说明链表存在环if (slow == fast) {hasCycle = true;break;}}// 如果链表无环,返回 nullif (!hasCycle) {return null;}// 慢指针重新指向头节点slow = head;// 慢指针和快指针同时移动一步,直到它们相遇,相遇点即为入环点while (slow != fast) {slow = slow.next;fast = fast.next;}return slow;}/*** 计算环形链表的环长度* @param head 链表的头节点* @return 环的长度,如果链表无环则返回 0*/public static int cycleLength(ListNode head) {// 若链表为空或者只有一个节点,不可能存在环,直接返回 0if (head == null || head.next == null) {return 0;}// 慢指针,每次移动一步ListNode slow = head;// 快指针,每次移动两步ListNode fast = head;// 标记链表是否有环boolean hasCycle = false;// 当快指针和其下一个节点都不为空时,继续循环while (fast != null && fast.next != null) {// 慢指针移动一步slow = slow.next;// 快指针移动两步fast = fast.next.next;// 如果慢指针和快指针相遇,说明链表存在环if (slow == fast) {hasCycle = true;break;}}// 如果链表无环,返回 0if (!hasCycle) {return 0;}// 初始化环的长度为 1int length = 1;// 快指针移动一步fast = fast.next;// 快指针继续移动,直到再次和慢指针相遇,记录移动的步数while (slow != fast) {fast = fast.next;length++;}return length;}public static void main(String[] args) {// 构建一个有环的链表示例ListNode node1 = new ListNode(1);ListNode node2 = new ListNode(2);ListNode node3 = new ListNode(3);ListNode node4 = new ListNode(4);node1.next = node2;node2.next = node3;node3.next = node4;node4.next = node2; // 形成环// 调用 hasCycle 方法判断链表是否有环并输出结果System.out.println("链表是否有环: " + hasCycle(node1));// 调用 detectCycle 方法找到入环点ListNode entryPoint = detectCycle(node1);if (entryPoint != null) {// 若有入环点,输出入环点的值System.out.println("入环点的值: " + entryPoint.val);} else {// 若没有入环点,输出提示信息System.out.println("没有入环点");}// 调用 cycleLength 方法计算环的长度并输出结果System.out.println("环的长度: " + cycleLength(node1));}
}
有序数组去重
public class RemoveDuplicatesSortedArray {/*** 此方法用于移除有序数组中的重复元素,使每个元素只出现一次。* 并返回移除重复元素后数组的新长度。* 原数组会被修改,新长度之前的元素为去重后的元素。** @param nums 输入的有序整数数组* @return 去重后数组的新长度*/public static int removeDuplicates(int[] nums) {// 如果数组为空,直接返回 0if (nums == null || nums.length == 0) {return 0;}// 慢指针,指向去重后数组的最后一个位置int slow = 0;// 快指针,用于遍历数组for (int fast = 1; fast < nums.length; fast++) {// 如果快指针指向的元素和慢指针指向的元素不相等if (nums[fast] != nums[slow]) {// 慢指针向后移动一位slow++;// 将快指针指向的元素赋值给慢指针当前位置nums[slow] = nums[fast];}}// 慢指针的位置加 1 就是去重后数组的长度return slow + 1;}public static void main(String[] args) {// 定义一个有序数组int[] nums = {1, 1, 2, 2, 3, 4, 4, 4, 5};// 调用 removeDuplicates 方法进行去重int newLength = removeDuplicates(nums);System.out.println("去重后数组的新长度: " + newLength);System.out.print("去重后的数组元素: ");for (int i = 0; i < newLength; i++) {System.out.print(nums[i] + " ");}}
}
数组合并区间
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;public class MergeIntervals {/*** 合并重叠的区间* @param intervals 输入的区间数组* @return 合并后不重叠的区间数组*/public static int[][] merge(int[][] intervals) {// 如果输入数组为空或者长度为 0,直接返回空数组if (intervals == null || intervals.length == 0) {return new int[0][0];}// 按照区间的起始位置进行排序Arrays.sort(intervals, Comparator.comparingInt(a -> a[0]));// 用于存储合并后的区间List<int[]> merged = new ArrayList<>();// 取第一个区间作为初始的合并区间int[] current = intervals[0];// 遍历剩余的区间for (int i = 1; i < intervals.length; i++) {int[] interval = intervals[i];// 如果当前区间的结束位置大于等于下一个区间的起始位置,说明有重叠if (current[1] >= interval[0]) {// 更新当前区间的结束位置为两个区间结束位置的最大值current[1] = Math.max(current[1], interval[1]);} else {// 没有重叠,将当前区间加入到合并列表中merged.add(current);// 更新当前区间为下一个区间current = interval;}}// 将最后一个合并的区间加入到列表中merged.add(current);// 将列表转换为二维数组并返回return merged.toArray(new int[merged.size()][]);}public static void main(String[] args) {int[][] intervals = {{1, 3}, {2, 6}, {8, 10}, {15, 18}};int[][] mergedIntervals = merge(intervals);// 输出合并后的区间for (int[] interval : mergedIntervals) {System.out.println(Arrays.toString(interval));}}
}
相关文章:
Android学习总结之算法篇五(字符串)
字符串求回文字串数目 public class CountPalindromicSubstrings {/*** 此方法用于计算字符串中回文子串的数量* param s 输入的字符串* return 回文子串的数量*/public static int countSubstrings(String s) {// 若输入字符串为空或长度为 0,直接返回 0if (s nu…...
使用人车关系核验API快速核验车辆一致性
一、 引言 随着车辆交易的日益频繁,二手车市场和金融领域的汽车抵押业务蓬勃发展。然而,欺诈和盗窃行为也时有发生,给行业带来了不小的冲击。例如,3月20日央视曝光的“新能源车虚假租赁骗补”产业链,以及某共享汽车平…...
day 8 TIM定时器
一、STM32 定时器概述 1. 定时器的概述定时器的基本功能,但是 STM32 的定时器除了具有定时功能之外,也具有定时器中断功能,还具有输入捕获(检测外部信号)以及输出比较功能(输出不同的脉冲)&…...
硬币找零问题
硬币找零问题:假设需要找零的金额为C,最少要用多少面值为p1<p2<…<pn的硬币(面值种类为n,且假设每种面值的硬币都足够多)? 贪心算法的基本原理是:遵循某种既定原则,不断…...
【微机及接口技术】- 第四章 内部存储器及其接口(上)
文章目录 第一节一、存储器的分类二、存储器的层次结构 第二节 半导体存储器一、半导体存储器的基本结构二、半导体存储器的分类1. 只读存储器 ROM2. 随机存储器 RAM 三、内存的主要性能指标1. 存储容量2. 存取时间3. 存取周期4. 可靠性5. 性价比 四、典型的半导体存储器芯片 本…...
tomcat的web三大组件Sciidea搭建web/maven的tomcat项目
文章目录 1. web项目的搭建1. 创建web项目2.修改web.xml版本3.添加servlet、jsp依赖4.servlet示例(使用注解)5.配置tomcat6.添加artifact7.部署8.启动tomcat、访问9.打war包10.部署到tomcat 2.maven的项目搭建1.创建项目图解 2.tomcat启动方式图解idea打…...
《SQL赋能人工智能:解锁特征工程的隐秘力量》
在当今的科技发展进程中,人工智能(AI)已经成为推动各领域变革的核心驱动力。而在人工智能的庞大体系里,特征工程占据着举足轻重的地位,它是将原始数据转化为能够让模型有效学习的特征的关键环节。鲜有人深入探讨的是&a…...
SQLmap工具使用
1. sqlmap介绍 sqlmap是一款自动化的SQL注入工具,用于检测和利用web应用程序中的SQL注入漏洞。不需要我们进行手注,当我们输入url地址后,会自动进行注入指令并将payload返回显示。 在kali中自带。在本机中需要下载,在相应的路径…...
Kubernetes集群管理详解:从入门到精通
1. 引言 Kubernetes(简称k8s)作为当今最流行的容器编排平台,已成为云原生应用部署和管理的事实标准。本文将深入探讨k8s集群管理的各个方面,为运维工程师和开发人员提供一个全面的指南。 2. Kubernetes架构概览 在深入具体的管理任务之前,让我们先回顾一下Kubernetes的基本架…...
【含文档+PPT+源码】基于Python的全国景区数据分析以及可视化实现
项目介绍 本课程演示的是一款基于Python的全国景区数据分析以及可视化实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 带你从零开始部署运行本套系统 该…...
鸿蒙开发者高级认证编程题库
题目一:跨设备分布式数据同步 需求描述 开发一个分布式待办事项应用,要求: 手机与平板登录同一华为账号时,自动同步任务列表任一设备修改任务状态(完成/删除),另一设备实时更新任务数据在设备离线时能本地存储,联网后自动同步实现方案 // 1. 定义分布式数据模型 imp…...
【网络安全】安全的网络设计
网络设计是网络安全的基础,一个好的网络设计可以有效的防止攻击者的入侵。在本篇文章中,我们将详细介绍如何设计一个安全的网络,包括网络架构,网络设备,网络策略,以及如何处理网络安全事件。 一、网络架构…...
基于FLask的重庆市造价工程信息数据可视化分析系统
【FLask】基于FLask的重庆市造价工程信息数据可视化分析系统 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 在当今快速发展的建筑工程行业中,造价信息的准确性和时效性对于项目决…...
swift-08-属性、汇编分析inout本质
一、Swift中跟实例相关的属性可以分为2大类 1.1 存储属性( Stored Property) 类似于成员变量这个概念 存储在实例的内存中 结构体、类可以定义存储属性 枚举不可以定义存储属性(因为枚举只存储关联值和case) 1.2 计算属性&am…...
Java 大视界 -- Java 大数据在智能医疗远程护理与患者健康管理中的应用与前景(175)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
大数据技术发展与应用趋势分析
大数据技术发展与应用趋势分析 文章目录 大数据技术发展与应用趋势分析1. 大数据概述2 大数据技术架构2.1 数据采集层2.2 数据存储层2.3 数据处理层2.4 数据分析层 3 大数据发展趋势3.1 AI驱动的分析与自动化3.2 隐私保护分析技术3.3 混合云架构的普及3.4 数据网格架构3.5 量子…...
如何在Ubuntu上安装Dify
如何在Ubuntu上安装Dify 如何在Ubuntu上安装docker 使用apt安装 # Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg…...
ffmpeg音频分析
对一个16k 单声道音频,生成频谱图 ./ffmpeg -i input.wav -lavfi "showspectrumpics800x400:modecombined:scalelin:gain1.5" spectrum.png...
每天五分钟深度学习框架pytorch:搭建LSTM完成手写字体识别任务?
本文重点 前面我们学习了LSTM的搭建,我们也学习过很多卷积神经网络关于手写字体的识别,本文我们使用LSTM来完成手写字体的识别。 网络模型的搭建 class RNN(nn.Module):def __init__(self,in_dim,hidden_dim,n_layer,n_class):super(RNN,self).__init__()self.n_layer=n_la…...
Maven工具学习使用(七)——Maven属性
内置属性 主要有两个常用的属性${basedir}表示项目的根目录,即包含pom.xml文件的目录;$[version]表示项目版本。 POM属性 使用该类属性引用POM文件中对应元素的值。例如${project.artifactId}就对应了元素的值,常用的POM属性包括: ${project.build.sourceDirectory} 项…...
【Linux网络与网络编程】05.应用层自定义协议序列化和反序列化
前言 本篇博客通过网络计算器的实现来帮助各位理解应用层自定义协议以及序列化和反序列化。 一、认识自定义协议&&序列化和反序列化 我们程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序都是在应用层。前面我们说到:协议是一种…...
搭建K8S-1.23
0、简介 这里只用3台服务器来做一个简单的集群 地址主机名192.168.160.40kuber-master-1192.168.160.41kuber-master-2192.168.160.42kuber-node-1 1、关闭三个服务 (1)防火墙 systemctl stop firewalld (2)Selinux setenf…...
解决Spring Boot Test中的ByteBuddy类缺失问题
目录 解决Spring Boot Test中的ByteBuddy类缺失问题前奏问题描述问题解决第一步:移除ByteBuddy的特定版本号第二步:更新maven-surefire-plugin配置第三步:清理并重新构建项目 结语 解决Spring Boot Test中的ByteBuddy类缺失问题 前奏 今天&…...
npm 项目命名规则
以下是 npm 项目命名规则的详细说明: 一、核心命名规则 必须使用小写字母 名称中不能包含大写字母。原因: 跨平台兼容性(如 Linux 区分大小写,而 Windows 不区分)。避免命令行和 URL 中的大小写冲突(例如包…...
#SVA语法滴水穿石# (012)关于 first_match、throughout、within 的用法
我们今天学习, SystemVerilog 断言(SVA)中 first_match、throughout、within 运算符。 1. first_match 定义与作用 功能:在可能产生 多个匹配结果 的复合序列(如 or 或重复操作符)中,仅选择第…...
基于springboot+vue的二手车交易系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
洛谷P11999.投入严厉地本地
洛谷P11999.投入严厉地本地 题目 题目解析及思路 题目要求根据两个字符串s和t,反推出一个映射集合f,其中s的每一个长度为k的子串都可以映射成单个字符或空字符 算出最终映射集合有多少个空字符,用全排列函数去搜索所有情况,判断…...
低代码开发平台:飞帆中新增控件、修改他人控件
飞帆是一个自由的控件平台。所有的网页都由控件搭建而成。 在我的资源、我的控件中,点击新增可以新增控件 对于他人的控件,点击复制控件展开,点击复制到我的控件 飞帆中的控件是使用 Vue2 来实现的...
Openstack指南
什么是云计算 概念 云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息,可以按需求提供给计算机和其他设备。用户不需要了解”云“中的基础设施细节,不必具有相应的专业知识,也无需直接控制。云…...
[自制调试工具]构建高效调试利器:Debugger 类详解
一、引言 在软件开发的漫漫征程中,调试就像是一位忠诚的伙伴,时刻陪伴着开发者解决代码里的各类问题。为了能更清晰地了解程序运行时变量的状态,我们常常需要输出各种变量的值。而 Debugger 类就像是一个贴心的调试助手,它能帮我…...
【网络IP】原生IP是什么?如何获取海外原生IP?
一、什么是原生IP 原生IP地址是互联网服务提供商(ISP)直接分配给用户的真实IP地址,无需代理或转发。这类IP的注册国家与IP所在服务器的注册地相符。这种IP地址直接与用户的设备或网络关联,不会被任何中间服务器或代理转发或隐藏。…...
【小沐学Web3D】three.js 加载三维模型(React Three Fiber)
文章目录 1、简介1.1 Three.js1.2 React Three Fiber 2、测试2.1 初始化环境2.2 app.js修改(显示内置立方体)2.3 app.js修改(显示内置球体)2.4 app.js修改(显示自定义立方体)2.5 app.js修改(显示…...
HTTP查询参数示例(XMLHttpRequest查询参数)(带查询参数的HTTP接口示例——以python flask接口为例)flask查询接口
文章目录 HTTP查询参数请求示例接口文档——获取城市列表代码示例效果 带查询参数的HTTP接口示例——以python flask接口为例app.pyREADME.md运行应用API示例客户端示例关键实现说明:运行方法: HTTP查询参数请求示例 接口文档——获取城市列表 代码示例…...
【玩泰山派】1、mac上使用串口连接泰山派
文章目录 前言picocom工具连接泰山派安装picocom工具安装ch340的驱动串口工具接线使用picocom连接泰山派 参考 前言 windows上面有xshell这个好用的工具可以使用串口连接板子,在mac上好像没找到太好的工具,只能使用命令行工具去搞了。 之前查找说mac上…...
【玩泰山派】0、mac utm安装windows10
文章目录 前言安装过程utm安装下载windows ios镜像安装windows系统解决共享文件夹拷贝受限问题 参考 前言 使用mac开发泰山派,但是买的泰山派没有emmc,只有sd卡,要使用瑞芯微的sd卡烧录工具,这个工具好像只支持windows࿰…...
html 给文本两端加虚线自适应
效果图: <div class"separator">文本 </div>.separator {width: 40%;border-style: dashed;display: flex;align-items: center;color: #e2e2e2;font-size: 14px;line-height: 20px;border-color: #e2e2e2;border-width: 0; }.separator::bef…...
Android学习总结之应用启动流程(从点击图标到界面显示)
一、用户交互触发:Launcher 到 AMS 的跨进程通信 1. Launcher 处理点击事件(应用层) 当用户点击手机桌面上的应用图标时,Launcher(桌面应用)首先捕获点击事件。每个图标对应一个启动 Intent(通…...
Vue2与Vue3不同
Vue3 设计思想与核心变化详解 一、Vue3 设计思想与 Vue2 差异对比 响应式系统重构Vue2 实现(基于 Object.defineProperty) // 在 Vue2 中,通过 data 选项返回一个对象,对象中的属性会被 Object.defineProperty 转换为响应式数据…...
《Java实战:素数检测算法优化全解析——从暴力枚举到筛法进阶》
文章目录 摘要一、需求分析二、基础实现代码与问题原始代码(暴力枚举法)问题分析 三、优化版代码与解析优化1:平方根范围剪枝优化2:偶数快速跳过完整优化代码 四、性能对比五、高阶优化:埃拉托斯特尼筛法算法思想代码实…...
解决报错:node:internal/errors:496 ErrorCaptureStackTrace(err);
报错信息 我使用npm init vuelatest创建项目时出现如下报错 node:internal/errors:496 ErrorCaptureStackTrace(err); ^ TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module “file:///D:/develop/nodejs/node_cache/_npx/2f7e7bff16d1c534/node_modules/create-vue/loc…...
【Linux笔记】进程管理章节笔记
一、进程与线程的概念 1、进程 1)概念 进程是程序的执行实例,拥有独立的资源(如内存、文件描述符等)。每个进程在创建时会被分配唯一的进程ID,即为PID,也叫进程编号。 2)特点 资源隔离&#…...
使用Webpack搭建React项目:从零开始
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
使用Cusor 生成 Figma UI 设计稿
一、开发环境 系统:MacOS 软件版本: Figma(网页或APP版) 注:最好是app版,网页版figma 没有选项 import from manifest app下载地址:Figma Downloads | Web Design App for Desktops & …...
前端 vs 后端:技术分工详解——从用户界面到系统逻辑的全解析
前端(Frontend) 和 后端(Backend) 是软件开发中两个核心概念,分别对应用户直接交互的部分和系统背后的逻辑处理部分。它们共同构成完整的应用程序,但分工不同。 目录 一、前端(Frontend…...
CentOS 7上配置SQL Server链接其他SQL Server服务器
概述 本文介绍在CentOS 7系统上运行的SQL Server如何链接访问其他SQL Server服务器的详细步骤,包括驱动安装、配置和连接测试。 安装必要组件 1. 安装ODBC驱动 # 安装基础ODBC组件 sudo yum install unixODBC unixODBC-devel# 添加Microsoft仓库 curl https://p…...
Scade One - 将MBD技术从少数高安全领域向更广泛的安全嵌入式软件普及
Scade One是继Scade Suite version 6自2008年起发展近20年后的首次主要改进版本。在Scade One发布的同时,Scade团队发布了一系列介绍Scade One的博客。本篇Scade One - Democratizing model-based development是其中的一部分。在后面的内容中,将复述博客…...
第十二章:容器间网络_《凤凰架构:构建可靠的大型分布式系统》
第十二章 容器间网络 一、Linux网络虚拟化基础 1. 网络命名空间(Network Namespace) 隔离网络栈:每个网络命名空间拥有独立的IP地址、路由表、防火墙规则等网络配置。实现方式:通过ip netns命令管理,容器启动时自动创…...
详解七大排序
目录 一.直接插入排序 (1)基本思想 (2)算法步骤 (3)代码实现 (4)算法特性 (5)算法优化 (6)示例演示 二.希尔排序 (…...
第八章 Python基础进阶-数据可视化(终)
此章节练习主要分为:折线图、地图、柱状图,若用户只是学习Python的基础语法知识,可以不看此章节。 主要是讲解第三方包PyEcharts技术,Python数据的可视化操作。 一.json数据格式 json的概念: (1&#x…...
【Hadoop3.1.4】完全分布式集群搭建
一、虚拟机的建立与连接 1.建立虚拟机 详情见【Linux】虚拟机的安装 把上面三个参数改掉 2.连接虚拟机 具体见【Linux】远程连接虚拟机防火墙 二、修改主机名 在Centos7中直接使用root用户执行hostnamectl命令修改,重启(reboot)后永久生…...