LC2. 两数相加

Q:给你两个非空的链表,表示两个非负整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位数字

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

 

示例1:
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
示例2:
输入:l1 = [0], l2 = [0]
输出:[0]
示例3:
输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

 

提示:

  • 每个链表中的节点数在范围 [1, 100] 内
  • 0 <= Node.val <= 9
  • 题目数据保证列表表示的数字不含前导零

A:思路:本题难度属于中等,可能是由于题目给的已经是逆序的链表,不需要再反转链表了,所以可以按照从左至右,即从个位数加至更高的位(即常规的两个整数的加法思想).....,刚拿到该题,可能会有的疑惑是:

    ① 遇到其中一个节点为null而另一个不为null时该怎么处理,其null对应的数值是什么?

    ② 进位问题怎么去解决?

    对于问题①,我们给出的解决方案是,先判断节点是否为null,并取其值,再进行相加操作,若遇到其中一个为null的节点时,我们将其对应的数值置为0,而遇到不为null的节点,则取其所对应的数值。

    对于问题②,我们给出的解决方案是,设置一个整形变量carry(n. 进位)作为进位标记,初始化为0,每次求和时使用sum = x + y + carry来计算和,并立马求得下一次可能的进位值carry = sum / 10并保存起来,供下次使用,除此之外,当需要求和的两个节点均为null时,我们要最后判断一下,如果此时carry是一个大于0的数值,那么说明,原来的两个三位数相加其和变成了四位数(举例),此时就要新增一个进位节点。

    以下是Java代码,仅供参考:

/**
* 这里是链表的定义,面试可能会考察,需要会写出。 * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummyNode = new ListNode(-1); // 定义一个哑节点,用来指向生成新的链表 ListNode cur = dummyNode; // 设置处理节点的当前指针 int carry = 0; // 设置进位,初始为0 while(l1 != null || l2 != null){ int x = l1 == null ? 0 : l1.val; // 若l1不为null,x取其val,若为null,x取0 int y = l2 == null ? 0 : l2.val; // 若l2不为null,x取其val,若为null,x取0
int sum = x + y + carry; // 求和,记得要带上进位哦 carry = sum / 10; // 求得进位,以供下一次求和使用 sum = sum % 10; // 获取求和后的余数,即为新节点的值
cur.next
= new ListNode(sum); // new 一个新节点,将值设置为sum,并将cur的next指针指向新节点 cur = cur.next; // cur指针向后移动 if(l1 != null) l1 = l1.next; if(l2 != null) l2 = l2.next; } if(carry > 0){ // 判断是否需要新增一个进位节点 cur.next = new ListNode(carry); } return dummyNode.next; // 返回所得的和,其是链表形式,且是逆序的 } }

 

本文转载于网络 如有侵权请联系删除

相关文章

  • Neuron Newsletter 2022-08|新增 Beckhoff ADS、OPC DA 驱动

    八月,我们发布了Neuron2.1.3&2.1.4,主要修复了2.1.0版本中存在的问题。此外还完善了SDK包以及基于此SDK包开发南向驱动的一系列文档;点位支持小数的精度设置以及乘系数,点位配置支持订阅属性,点位值发生变化时才会上报;与西门子平台进行了集成验证测试,支持通过西门子平台安装Neuron至其接入的网关设备。OPCDA驱动新增独立的OPCDA和OPCUA协议转换程序——opcshift。opcshift同时作为OPCDA客户端和OPCUA服务端,通过读取DA服务器的数据并转化为UA的协议格式,然后再交由Neuron的OPCUA驱动进行处理。opcshift依赖于微软DCOM技术,因此只能部署在Windows操作系统之上(32位或64位均可)。Neuron可以通过标准的OPCUA连接方式与opcshift跨主机连接。opcshift会将所有受支持的DA点位映射到UA的「命名空间1」之下,各个点位的ID与DA服务器保持一致,可简化Neuron下的采集配置。由于是OPCUA的标准接口,opcshift也支持其他OPCUA客户端(如UaExpert)的访问。opcshift

  • EasyCVR切换为新版本时设备全部离线,用户应该如何正确配置MySQL数据库?

    关于TSINGSEE青犀视频平台数据库切换的操作步骤、迁移数据时遇到的异常等相关技术类文章,我们在博文中分享过很多,感兴趣的用户可以翻阅我们的往期文章进行了解。TSINGSEE青犀视频的旗下视频平台默认数据库是SQLite,用户可以根据需求将其更换为MySQL数据库。有用户切换为新版本EasyCVR(v2.5.0)时,反馈页面设备全部离线,但是旧版数据库里的数据仍在,数据库其他参数也没变动,请求我们协助解决。出现上述情况,是因为EasyCVR新版本(v2.5.0)新增加了集群的功能,数据库里添加了新的字段。由于老版本的MySQL数据库没有这些字段,所以导致出现上述的页面设备离线情况。解决方法如下:1)将dbchannelinfo表里的server_id字段,配置上默认的EasyCVR_NODE_01;2)将device表里面的server_id字段,也同样配置上默认的EasyCVR_NODE_01;3)重启EasyCVR服务;4)此时可以看见设备已经全部上线了。EasyCVR平台的服务器集群功能已经发布了一段时间了,越来越多的用户也逐渐开始部署集群方案。作为一种高效的服务器协作方式,服

  • 神经机器翻译的混合交叉熵损失函数 | ICML 2021

    作者|李浩然、陆巍 编辑|青暮本文提出了一个新的损失函数,混合交叉熵损失(MixedCE),用于替代在机器翻译的两种训练方式(TeacherForcing和ScheduledSampling)里常用的交叉熵损失函数(CE)。MixedCE实现简单,计算开销基本和标准的CE持平,并且在多个翻译数据的多种测试集上表现优于CE。这篇文章我们简要介绍MixedCE的背景和一些主要的实验结果。文章和附录:http://proceedings.mlr.press/v139/li21n.html代码:https://github.com/haorannlp/mix1 背景本节简单介绍一下TeacherForcing和ScheduledSampling的背景。TeacherForcing[1]训练方式指的是当我们在训练一个自回归模型时(比如RNN,LSTM,或者Transformer的decoder部分),我们需要将真实的目标序列(比如我们想要翻译的句子)作为自回归模型的输入,以便模型能够收敛的更快更好。通常在TeacherForcing(TF)这种训练方式下,模型使用的损失函数是CE:虽然TF训

  • 网站建设如何选择CMS网站系统

    从事网站优化多年,接触过很多客户的网站,发现这些网站绝大部分都是采用cms搭建,接触多了,对cms系统这行也算半个专家,市面上cms系统很多,大大小小,收费的,免费的不下几百种,有主流的cms厂家,也有的很多老产品不更新了,也有一些是毕业设计作品或练手作品,功能参差不齐,一般不懂的还真不知道选择哪个好,所以如果大家需要做网站,通过下面的内容,就能对cms系统行业有一个大致的了解,从而可以选择合适的cms系统,下面百里营销的小编就给大家分享一些干货:cms系统太多,千万也不要去网上随便下载一个就拿来做自己的网站,那些你连作者都不知道是谁,或者官网都没有的最好就别用,大部分都是功能不全,要不就是安全漏洞一大堆,就拿安全这块来说,用了不安全的cms系统,你做好的网站用不了几个月就成为人家的免费挂马平台,严重的还会被网监警告整改或罚款,安全这块最近在大型企业、学校和政务类网站尤其注重,这类网站最好选择商业化的cms系统,在安全,功能这块比较靠谱,比如国内的pageadmin、帝国这类cms就比较安全,功能也强大,如果是普通个人网站或小企业,很多开源cms系统都可以用,主要服务器做好安全措施问题

  • 聊一下CPU占用高的解决方案

    前言:在软件开发和性能测试中,CPU占用率是服务器开发一个很重要的指标,到底有哪些因素会导致CPU占用率上升呢?又有哪些手段可以降低CPU的占用率呢?如果你看了这篇文章后仍然没有解决项目问题的思路,请在下方留言或公众号后台留言。(后续我将更新一到两篇关于内存优化,内存泄漏检测的分享)废话少说,来点干货。查看CPU占用率1.Windows平台,你直接查看任务管理器,你很清楚的能看到各个进程的CPU占用情况。 2.实际上我重点要给大家分享的是linux环境下的CPU监控。 我们一般使用top-Hp进程ID例如:top-Hp5490这里我们就能看到当前进程下所有线程的CPU占用情况(%CPU这一列) 不错,眼尖的你可能已经发现了这里有几个子线程的CPU占用率特别高,已经超过85%,所以这块将会是我们将要优化的地方。如何排查CPU占用率高问题有哪些因素导致CPU占用率上升?(1)复杂计算运行一些算法处理,比如:音视频编解码、图像处理、科学计算等等,特别是一些浮点数的运算。另外频繁的循环嵌套也会造成CPU很高例如这段循环嵌套的代码: intmain(){ vector<int>aa;

  • PCI Express 系列连载篇(十六)

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。 PCIExpress学习系列已经连载了十五篇了,第一阶段的学习已经告一段落,从第十六篇开始将开启第二阶段的学习,PCIExpress体系结构概述。PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCIExpress系列连载,今天带来第十六篇,PCIExpress体系结构概述相关内容。希望对各位大侠的学习有参考价值,话不多说,上货。虽然PCI总线取得了巨大的成功,但是随着处理器主频的不断提高,PCI总线提供的带宽愈发显得捉襟见肘。PCI总线也在不断地进行升级,其位宽和频率从最初的32位/33MHz扩展到64位/66MHz,而PCI-X总线更是将总线频率提高到533MHz,能够提供的最大理论带宽为4263MB。但是PCI总线仍无法解决其体系结构中存在的一些缺陷。PCI总线面临着一系列挑战,包括带宽、流量控制和数据传送质量等。PCI总线的最高工作频率为66M,最大位宽

  • __weak关键字:程序模块相互独立的大杀器

    在STM32HAL库开发中,我们经常会看到__weak这个关键字,到底是什么意思呢?出于这个好奇心我们来打开KEIL的帮助手册找到它的出处:意思就是,它是一个弱符号,可以用于修饰变量和函数;不过我们经常看到的是对函数的修饰,所以这里我们仅讨论下函数的修饰就可以了,也就是说,当一个函数前面加上__weak这样的修饰符以后,允许用户在其它文件中定义一个和__weak修饰过的一模一样的函数,最终当编译器编译的时候,会选择用户定义的函数,如果用户没有重新实现这个函数,则编译器就会去执行带__weak修饰的函数。所以在HAL库里,比如我们经常会看到像下面这样的函数:__weakvoidHAL_UART_TxHalfCpltCallback(UART_HandleTypeDef*huart) { UNUSED(huart); } __weakvoidHAL_UART_RxCpltCallback(UART_HandleTypeDef*huart) { UNUSED(huart); } ....等等.... 复制通常HAL库源码里带__weak这个弱函数很多内部都没有实现,它把主动权让给用户自己

  • 如果MySQL的 InnoDB 文件的损坏,该如何手动恢复?

    我们都知道MySQL的复制技术,通过主从同步可以实现读写分离,热备份,让服务器更加高可用。MySQL的复制主要是通过Binlog来完成的,Binlog记录了数据库更新的事件,从库I/O线程会向主库发送Binlog更新的请求,同时主库二进制转储线程会发送Binlog给从库作为中继日志进行保存,然后从库会通过中继日志重放,完成数据库的同步更新昨天整理一篇一篇在没有开启使用Binlog的情况下,尽可能地找回数据。数据库没有备份,没有使用Binlog的情况下,如何恢复数据?下面InnoDB文件损坏时的人工操作过程,下面用一个例子来模拟下生成InnoDB数据表 为了简便,我们创建一个数据表t1,只有id一个字段,类型为int。使用命令createtablet1(idint);即可然后创建一个存储过程帮我们生成一些数据BEGIN --当前数据行 DECLAREiINTDEFAULT0; --最大数据行数 DECLAREmax_numINTDEFAULT100; --关闭自动提交 SETautocommit=0; REPEAT SETi=i+1; --向t1表中插入数据 INSERTINTOt1(i

  • SpringBoot + Vue + Electron 开发 QQ 版聊天工具

    一、简介这是一款基于JS实现的超轻量级桌面版聊天软件。主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。也支持web网页聊天实现。文字聊天,互传文件,离线消息,群聊,断线重连等功能。先看一下效果,下图左边是web版,右边为PC版。二、本地搭建2.1技术栈后端技术栈:springboot:让开发人员快速开发的一款Java的微服务框架。tio:是百万级网络框架oauth2.0:OAuth2.0是一个行业的标准授权协议。OAuth2.0专注于简化客户端开发人员,同时为Web应用程序,桌面应用程序,手机和客厅设备提供特定的授权流程。前端技术栈:vue:套用于构建用户界面的渐进式前端框架。iview:一套基于Vue.js的开源UI组件库,主要服务于PC界面的中后台产品。electron:用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。2.2启动后端服务下载项目 使用gitBash工具下载项目到本地gitclonehttps://gitee.com/lele-666/V-IM.git复制这里说明一下,项目的前后端代码这样就一次下载下

  • 使用Python读取plist文件并分割

    使用Python读取plist文件并分割原图plist文件简介根据百度百科介绍,plist是一种文件形式,通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的MacOS中是由资源分支提供的。由于Plist中存储的数据是抽象的,其采用的文件格式可以不止一种。 分析plist文件结构可知,其本质是XML文档,因而我们可以使用XML解析器分析plist文件,读取各个图片的信息并将原图切割即可。下文例子所用到的Python库xml.etree PIL(pillow,可使用pipinstallpillow安装)相应的Python代码#-*-coding:UTF-8-* fromxml.etreeimportElementTree fromPILimportImage importargparse importos importsys classPlistParser: def__init__(self,plistPath,imagePath,outputDirPath): self.plistPath=plistPath self.imagePath=imagePath self.

  • 自然梯度优化详解

    编译|sunlei 发布|ATYUN订阅号对于一阶近似,所有现代的深度学习模型都是使用梯度下降训练的。在梯度下降的每一步,您的参数值开始于某个起点,并将它们移动到最大的损失减少的方向。通过对损失对整个参数向量求导,也就是雅可比矩阵。然而,这只是损失的一阶导数,它没有告诉你曲率的任何信息,或者说,一阶导数变化的有多快。由于您所处的区域中,您对一阶导数的局部近似可能不会从该估计值点(例如,就在一座大山前面的一条向下的曲线)推广到很远的地方,所以您通常希望谨慎,不要迈出太大的一步。因此,为了谨慎起见,我们用步长控制前进的速度,即α(alpha),如下式所示。这个步长做了一些有趣的事情:它限制了你要在梯度方向上更新每个参数的距离,并以固定的数量进行更新。在这个算法的最简单版本中,我们取一个标量alpha,让我们假设它是0.1,然后乘以相对于损耗的梯度。我们的梯度,记住,实际上是一个向量-模型中每个参数的损失梯度-因此,当我们用一个标量乘以它时,我们用欧几里得参数距离乘以沿着每个参数轴的更新比例。在梯度下降的最基本版本中,我们在学习过程中使用相同的步长。但是……这真的有道理吗?具有较小学习速率的

  • Linux下的crontab定时执行任务命令详解

    crontab命令主要用于设置周期性被执行的指令,今天小编将给大家详细讲解Linux下的crontab定时执行任务命令,有兴趣的伙伴可以阅读文章了解!  前言:  在Linux中,周期执行的任务一般由cron这个守护进程来处理[ps-ef|grepcron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“crontable”的简写。  Linux下的crontab定时执行任务命令详解:  一、cron服务  cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。  servicecrondstart//启动服务  servicecrondstop//关闭服务  servicecrondrestart//重启服务  servicecrondreload//重新载入配置  servicecrondstatus//查看服务状态  二、cron在3个地方查找配置文件:  1、/var/spool/cron/这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如t

  • 2048-控制台版本

    /最近修改2017/6/26/ /修改2017/7/4,修改之前各自填满之后无法移动的错误,暂时未发现大的错误/ /最后修改2017/7/5,添加前景色,添加模式选择,改善界面/ 一.实现目标: 2048游戏 二.要求: 1、在屏幕上显示4*4的表格 2、随机生成2、4数字及位置 3、颜色设置 三.运行环境和工具: VC++6.0 四.实现步骤 0.游戏逻辑: 把游戏画面想象成4*4的数组,其中数值为0的位置表示空的格子, 有数值的位置代表对应的格子。然后对于每一行按列来遍历,或者每一列按行来遍历,实现每一行每一列的对应数字合并,直到出现2048的格子就胜利,否则就失败. 1.编写用于实现数字移动的方向函数 以向左移动为例: 把游戏画面想象成4*4的数组,其中数值为0的位置表示空的格子, 先看其中一行,有四列,用一个变量k=0,从第一列开始,另一个变量j=1开始,代表k之后的列,开始遍历。 如果第j列这个位置不为0的话,那么之后可以分为3种情况: 第一种情况:第k列和第j列相同,这个时候就将第k列的数字加倍,第j列重置为0. 第二种情况:第k列为0,那么就交换第k列和第j列的数字。 第

  • 本人喜提网易游戏产品策划offer全过程

    在我的上一篇腾讯的面筋里我提到了我在参加腾讯群面期间,收到了网易游戏的offercall。那是在网易游戏面试结束后大概三个星期之后了。今天就和大家聊聊网易游戏的产品策划的面试。 网申:大家要注意的是,网易游戏和网易是独立招聘的,网易游戏有自己的招聘网站。网申其实没什么好说的,主要就是看清楚招聘说明的细节。比如说我个人其实对开发相关的技术了解甚少,那么我就避开了产品岗中对技术有一定要求的岗位。 笔试:网易游戏的产品岗并没有安排笔试 群面:网易游戏的群面是大概8-10人一组,面试官有4-5位,由于招聘人数和参加面试的人数都不算非常多,因此面试就在网易大厦的一些会议室中进行。 当时我群面的题目是针对在天河区的公园相亲角,我们需要设计一款互联网产品去帮助大叔大妈更好的帮自己的子女找到合适的对象。 其实对于群面题目的解读,是有一定方法论的。 给题目的类型进行划分。其实群面的题目,除了一些很奇葩的题目。大致可以分为:需求分析题、产品设计题、营销方法、项目管理等。大家可以自行归类。然后找出不同题型的特点。 例如针对在天河区的公园相亲角,我们需要设计一款互联网产品去帮助大叔大妈更好的帮自己的子女找到合

  • 1-3 CCNA

    IP地址是逻辑地址用来确定一个网络中的一个节点,或者一个设备两台主机通信,必须要有IP地址,32位二进制数,为了便于记忆,转换成10进制数,如192.168.1.1,并且用点号分割,也称为点分十进制数进制转换:二进制可以转10进制,10进制也能转二进制 第一种:余数定理 用168来除以2,等于为84,那么84显然可以被2整除,所以余数为0再除以2,等于42,也可以整除,余数为0再除以2,等于21,不可以被整除,那余数为1,21-1=20吧那就20除以2,等于10,可以被整除,余数为0再除以2,等于5,不能被整除,余数为0那么最后2除以2,等于1PS:注意,写的时候要反过来写,是10101000 第二种,就是冥跟位的对应关系 首先,你要明白2的次方是多少,这很重要其实,就是为禁止中的位,加上他所对应的冥从左往右,分别是1286432168421,这都是固定不变的,比如刚刚的168,而进数是:10101000,那么,换成十进制数就是128+32+8IP地址总共分为5个类别 首先IP地址,它是由4个八位组构成,也就是每一组是由8位2进制数构成,那4组就是32位换算成10进制数,最小的可能性是

  • .Net3.0中的自动属性(示例)

    using System; namespace LinqDemo {     class Program     {         static void Main(string[] args)         {             //传统用法示例             Employee Emp = new Employee("Jimmy.Yang", 25);             Console.WriteLine(Emp.ToString());             Console.WriteLine("-------------------");             //自动属性的写法             NewEmployee NewEmp = new NewEmployee { Name = "Tom", Age = 30 };//感觉与Javascript中对象的JSON字符串表示法相似             Console.WriteLine

  • 搞透 IOC,Spring IOC 看这篇就够了!

    IOC与AOP属于Spring的核心内容,如果想掌握好Spring你肯定需要对IOC有足够的了解@mikechen IOC的定义 IOC是InversionofControl的缩写,多数书籍翻译成“控制反转”。 IOC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。 传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试,有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,如下图所示: 上图引入了IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了,全部对象的控制权全部上缴给“第三方”IOC容器。 所以,IOC借助于“第三方”实现具有依赖关系的对象之间的解耦,使程序更优良。   IOC与DI的关系 其实IOC包括依赖查找(DL)和依赖注入(DI),只不过DL因为有侵入性(它需要用户自己去是使用API进行查找资源和组装对象),已经被抛弃。 所以现在提到IOC,更多的想到的就是依赖注入(DI)了,如图所示: DI的全称是DependencyInjecti

  • 基于Abp React前端的项目建立与运行——React框架分析

    基于AbpReact前端的项目建立与运行 目录基于AbpReact前端的项目建立与运行1Abp项目配置2运行WebApi后端项目2.1创建C3D数据库,并且将数据库对应链接字符串替换2.2建立数据库进行数据迁移2.3运行WebApi项目3运行React前端项目3.1利用yarn包安装工具3.2运行React项目3.3使用React客户端的意义4React前端项目架构4.1技术栈4.2设计原则4.3mobx架构4.4React前端整体架构5小结 1Abp项目配置 2运行WebApi后端项目 2.1创建C3D数据库,并且将数据库对应链接字符串替换 2.2建立数据库进行数据迁移 主项目选择到StartUp所在的项目,C3D.Web.Host,nugetconsole窗口打到C3D.EntityFrameWork.Core项目; 然后输入数据迁移指令 Add-Migrationfirst_init Update-Database 复制 2.3运行WebApi项目 选择C3D.Web.Host,点击运行。 SwaggerWebApi接口页面如下: 3运行React前端项目 3.1利用ya

  • 软电话注册方式

        MicroSIP软电话       eyeBeam注册方式   ctgu_czy

  • 七个基于 Fedora Linux 的优秀发行版

    此处的列表适用于桌面 Linux 用户。该列表没有特定的排名顺序,并且提到的选项可能并不总是适合新用户。因此,在第一次安装任何基于Fedora的发行版之前,请确保你浏览了文档。 有几十个基于Ubuntu的发行版可用。从面向初学者的发行版​到漂亮的发行版,Ubuntu主导着Linux桌面空间。 如果通用发行版还不够的话,你还会发现一些奇怪的基于Ubuntu的发行版。 我不打算参与Ubuntu与Fedora的辩论。我只是说如果你想在Fedora领域中尝试一些东西,我可以列出一些选项。 请记住,我不会列出面向服务器的Linux发行版。此处的列表适用于桌面Linux用户。 该列表没有特定的排名顺序,并且提到的选项可能并不总是适合新用户。因此,在第一次安装任何基于Fedora的发行版之前,请确保你浏览了文档。 1、Fedora定制版 Fedora有很多定制版spin,但没有Ubuntu那么多。 Fedora定制版​不是基于Fedora的独立发行版,而只是具有不同桌面环境或采用平铺窗口管理器的不同版本的Fedora。 如果你不喜欢默认的GNOME桌面环境,你可以下

  • 信息安全研究领域分类

相关推荐

推荐阅读