数据结构与算法Python版之北大慕课笔记(五)
数据结构与算法Python版之北大慕课笔记(五)
- 一、图Graph
- 1. 图的基础知识
- 2. 图的定义
- 二、ADT Graph
- 1. 邻接矩阵
- 2. 邻接列表
- 3. ADT Graph的实现
- 三、图的应用
- 1. 词梯Word Ladder问题
- 2. 骑士周游问题
- 3. 通用的深度优先搜索
- 4. 拓扑排序Topological Sort
- 5. 强连通分支
- 6. 最短路径问题
- 7. 最小生成树
一、图Graph
1. 图的基础知识
-
图Graph是比树更为一般的结构,也是由节点和边构成的,实际上树是一种具有特殊性质的图。
-
顶点Vertex(也称“节点Node”)是图的基本组成部分,顶点具有名称标识Key,也可以携带数据项payload。
-
边Edge(也称“弧Arc”),作为2个顶点之间关系的表示,边连接两个顶点;边可以是无向或者有向的,相应的图称作“无向图”和“有向图”。
-
权重Weight,为了表达从一个顶点到另一个顶点的代价,可以给边赋权。例如公交网络中两个站点之间的距离、通行时间和票价都可以作为权重。
2. 图的定义
- 一个图G可以定义为G = (V,E),其中V是顶点的集合,E是边的集合,E中的每条边e = (v, w),v和w都是V中的顶点;如果是赋权图,则可以在e中添加权重分量子图:V和E的子集。
- 路径Path,图中的路径,是由边依次连接起来的顶点序列;无权路径的长度为边的数量;带权路径的长度为所有边权重的和。
- 圈Cycle,圈是首尾顶点相同的路径。如果有向图不存在任何圈,则称作“有向无圈图 directed acyclic graph: DAG”。如果一个问题能表示成DAG,就可以用图算法很好地解决。
二、ADT Graph
ADT Graph的实现方法有两种主要形式:邻接矩阵adjacency matrix;邻接表adjacency list,两种方法各有优劣,需要在不同应用中加以选择。
1. 邻接矩阵
-
矩阵的每行和每列都代表图中的顶点。
-
如果两个顶点之间有边相连,设定行列值。无权边则将矩阵分量有就标注为1,没有就标注为0;带权边则将权重保存为矩阵分量值。
-
邻接矩阵实现法的优点是简单,可以很容易得到顶点是如何相连的。
-
但如果图中的边数很少则效率低下,成为稀疏sparse矩阵。而大多数问题所对应的图都是稀疏的,边远远少于|v|^2 这个量级。
2. 邻接列表
-
邻接列表可以成为稀疏图的更高效实现方案。维护一个包含所有顶点的主列表(master list),主列表中的每个顶点,再关联一个与自身有边连接的所有顶点的列表。
-
邻接列表法的存储空间紧凑高效,很容易获得顶点所连接的所有顶点,以及连接边的信息。
3. ADT Graph的实现
-
顶点Vertex类:Vertex包含了顶点信息,以及顶点连接边信息。
class Vertex:def __init__(self, key):self.id = keyself.connectedTo = {}def addNeighbor(self, nbr, weight=0):self.connectedTo[nbr] = weight # nbr是顶点对象的keydef __str__(self):return str(self.id) + 'connectedTo:' + str([x.id for x in self.connectedTo])def getConnections(self):return self.connectedTo.keys()def getId(self):return self.iddef getWeight(self, nbr):return self.connectedTo[nbr]
-
图Graph类:Graph保存了包含所有顶点的主表。
class Graph:def __init__(self):self.verList = {}self.numVertices = 0def addVertex(self, key): # 新加顶点self.numVertices = self.numVertices + 1newVertex = Vertex(key)self.verList[key] = newVertexreturn newVertexdef getVertex(self, n): # 通过key查找顶点if n in self.verList:return self.verList[n]else:return Nonedef __contains__(self, n):return n in self.verListdef addEdge(self, f, t, cost=0):if f not in self.verList:nv = self.addVertex(f) # 不存在的顶点先添加if t not in self.verList:nv = self.addVertex(t)self.verList[f].addNeighbor(self.verList[t], cost) # 调用起始顶点的方法添加临街边def getVertices(self):return self.verList.keys()def __iter__(self):return iter(self.verList.values())
三、图的应用
1. 词梯Word Ladder问题
- 由爱丽丝漫游奇境的作者Lewis Carroll在1878年所发明的单词游戏。
- 从一个单词演变为另一个单词,其中的过程可以经过多个中间单词,要求是相邻两个单词之间差异只能是1个字母。如FOOL变为SAGE:FOOL >> POOL >> POLL >> POLE >> PALE >> SALE >> SAGE
- 我们的目标是找到最短的单词变换序列,采用图来解决这个问题的步骤如下:将可能的单词之间的演变关系表达为图,采用广度优先搜索BFS,来搜寻从开始单词到结束单词之间的所有有效路径,选择其中最快到达目标单词的路径。
构建单词关系图:
-
首先是如何将大量的单词集放到图中,将单词作为顶点的标识key,如果两个单词之间仅相差1个字母,就在它们之间设一条边。
-
下图是从FOOL到SAGE的词梯解,所用的图是无向图,边没有权重,FOOL到SAGE的每条路径都是一个解。
-
单词关系图可以通过不同的算法来构建(以4个字母的单词表为例),首先是将所有单词作为顶点加入图中,再设法建立顶点之间的边。
-
建立边的最直接算法,是对每个顶点(单词),与其它所有单词进行比较,如果相差仅1个字母,则建立一条边。时间复杂度是0(n^2),对于所有4个字母的5110个单词,需要超过2600万次比较。
-
改进的算法是创建大量的桶,每个桶可以存放若干单词,通标记是去掉1个字母,通配符“_”占空的单词。
-
所有匹配标记的单词都放到这个桶里,所有单词就位后,再在同一个桶的单词之间建立边即可。
-
对于所有4个字母的5110个单词建立的单词关系图总计有53286条边,仅仅达到矩阵单元数量的0.2%,因此单词关系图是一个非常稀疏的图。
代码实现:
def buildGraph(wordFile):d = {}g = Graph()wfile = open(wordFile,'r')for line in wfile:word = line[:-1]for i in range(len(word)): # 4字母单词可属于4个桶bucket = word[:i] + '_' + word[i+1:]if bucket in d:d[bucket].append(word)else:d[bucket] = [word]for bucket in d.keys(): # 同一个桶的单词之间建立边for word1 in d[bucket]:for word2 in d[bucket]:if word1 != word2:g.addEdge(word1,word2)return g
实现广度优先搜索:
-
BFS是搜索图的最简单算法之一,也是其它一些重要的图算法的基础。
-
给定图G,以及开始搜索的起始顶点s。BFS搜索所有从s可到达顶点的边,而且在达到更远的距离k+1的顶点之前,BFS会找到全部距离为k的顶点。可以想象为以s为根,构建一棵树的过程,从顶部向下逐步增加层次。广度优先搜索能保证在增加层次之前,添加了所有兄弟节点到树中。
-
为了跟踪顶点的加入过程,并避免重复顶点,要为顶点增加3个属性。
- 距离distance:从起始顶点到此顶点路径长度;
- 前驱顶点predecessor:可反向追溯到起点;
- 颜色color:标识了此顶点是尚未发现(白色)、已经发现(灰色)、还是已经完成探索(黑色)。
-
还需要一个队列queue来对已发现的顶点进行排列,决定下一个要探索的顶点(队首顶点)。
-
从起始顶点s开始,作为刚发现的顶点,标注为灰色,距离为0,前驱为None,加入队列,接下来是个循环迭代过程:从队首取出一个顶点作为当前顶点;遍历当前顶点的邻接顶点,如果是尚未发现的白色顶点,则将其颜色改为灰色(已发现),距离增加1,前驱顶点为当前顶点,加入到队列中;遍历完成后,将当前顶点设置为黑色(已探索过),循环回到步骤1的队首取当前顶点。
-
在以FOOL为起始顶点,遍历了所有顶点,并为每个顶点着色,赋距离和前驱之后,既可以通过一个回途追溯函数来确定FOOL到任何单词顶点的最短词梯。
代码实现:
# BFS代码:
def bfs(g,start):start.setDistance(0)start.setPred(None)vertQueue = Queue()vertQueue.enqueue(start)while (vertQueue.size() > 0):currentVert = vertQueue.dequeue() # 取队首作为当前顶点for nbr in currentVert.getConnections(): # 遍历邻接顶点if (nbr.getColor() == 'white'):nbr.setColor('gray')nbr.setDistance(currentVert.getDistance()+1)nbr.setPred(currentVert)vertQueue.enqueue(nbr)currentVert.setColor('black') # 当前顶点设为黑色def traverse(y):x = ywhile (x.getPred()):print(x.getId())x = x.getPred()print(x.getId())
广度优先搜索算法分析:
- BFS算法主体是两个循环的嵌套,while循环对每个顶点访问一次,所以是O(|V|),而嵌套在while中的for,由于每条边只有在其起始顶点u出队的时候才会被检查一次,而每个顶点最多出队一次,所以边最多被检查1次,一共是0(|E|),综合起来BFS的时间复杂度为0(|V|+|E|)。
- 词梯问题还包括两个部分算法:建立BFS树之后,回溯顶点到起始顶点的过程,最多为0(|V|);创建单词关系图也需要时间,最多为O(|V|^2)。
2. 骑士周游问题
在一个国际象棋棋盘上,一个棋子“马”(骑士)按照马走日的规则,从一个格子出发,要走遍所有棋盘格恰好一次。把一个这样的走棋序列称为一次“周游”。
-
在8*8的国际象棋棋盘上,合格的周游数量有1.305*10^35这么多,采用图搜索算法,是解决骑士周游问题最容易理解和编程的方案之一。
-
解决方案分为两步:首先将合法走棋次序表示为一个图;采用图搜索算法搜寻一个长度为(行×列-1)的路径,路径上包含每个顶点恰一次。
-
将棋盘和走棋步骤构建为图的思路:将棋盘格作为顶点,按照马走日规则的走棋步骤作为连接边,建立每一个棋盘格的所有合法走棋步骤能够到达的棋盘格关系图。
-
最后生成的8×8棋盘骑士周游图具有336条边,相比起全连接的4096条边,仅8.2%,还是稀疏图。
骑士周游算法实现:
-
用于解决骑士周游问题的图搜索算法是深度优先搜索(Depth First Search)。
-
相比前述的广度优先搜索逐层建立搜索树的特点,深度优先搜索是沿着树的单支尽量深入向下搜索,如果到无法继续的程度还未找到问题解,就回溯到上一层再搜索下一支。
-
深度优先搜索解决骑士周游的关键思路:如果沿着单支深入搜索到无法继续(所有合法移动都已经被走过了)时,路径长度还没有达到预定值(8×8棋盘为63),那么就清除颜色标记,返回到上一层,换一个分支继续深入搜索。
-
引入一个栈来记录路径,并实施返回上一层的回溯操作。
-
骑士周游问题的其中一个解:
骑士周游问题代码实现:
def genLegalMoves(x,y,bdSize):newMoves = []moveOffsets = [(-1,-2),(-1,2),(-2,-1),(-2,1), # 马走日8个格子(1,-2),(1,2),(2,-1),(2,1)]for i in moveOffsets:newX = x + i[0]newY = y + i[1]if legalCoord(newX,bdSize) and legalCoord(newY,bdSize):newMoves.append((newX,newY))return newMovesdef legalCoord(x,bdSize):if x >= 0 and x < bdSize: # 确认不会走出棋盘return Trueelse:return Falsedef knightGraph(bdSize):ktGraph = Graph()for row in range(bdSize): # 遍历每个格子for col in range(bdSize):nodeId = posToNodeId(row,col,bdSize)newPositions = genLegalMoves(row,col,bdSize) # 单步合法走棋for e in newPositions:nid = posToNodeId(e[0],e[1],bdSize)ktGraph.addEdge(nodeId,nid) # 添加边及顶点return ktGraphdef posToNodeId(row,col,bdSize):return row*bdSize + coldef knightTour(n,path,u,limit): # n层次,path路径,u当前顶点,limit搜索总深度u.setColor('gray')path.append(u) # 当前顶点加入路径if n < limit:nbrList = list(u.getConnections()) # 对所有合法移动逐一深入i = 0done = Falsewhile i < len(nbrList) and not done:if nbrList[i].getColor() == 'white': # 选择白色未经过的顶点深入done = knightTour(n+1,path,nbrList[i],limit) # 层次加1,递归深入i = i + 1if not done: # 无法完成总深度,回溯,试本层下一个节点path.pop()u.setColor('white')else:done = Truereturn done
骑士周游算法分析:
- 上述算法的性能高度依赖于棋盘大小,目前实现的算法,其复杂度为O(k^n),其中,n是棋盘格数目。这是一个指数时间复杂度的算法,其搜索过程表现为一个层次为n的树。
骑士周游算法改进:
- 修改遍历下一格的次序,将u的合法移动目标棋盘格排序为:具有最少合法移动目标的格子优先搜索。
- 采用先验知识来改进算法性能的做法,称作为“启发式规则heuristic”。启发式规则经常用于人工智能领域;可以有效地减小搜索范围、更快达到目标等;如棋类程序算法,会预先存入棋谱,布阵口诀,高手习惯等启发式规则,能够在最短时间内从海量的棋局落子点搜索树中定位最佳落子。
改进代码:
# 骑士周游算法改进代码:
def orderByAvail(n):resList = []for v in n.getConnections():if v.getColor() == 'white':c = 0for w in v.getConnections():if w.getColor() == 'white':c = c + 1resList.append((c,v))resList.sort(key=lambda x: x[0])return [y[1] for y in resList]
- 骑士周游问题是一种特殊的对图进行深度优先搜索,其目的是建立一个没有分支的最深的深度优先树,表现为一条线性的包含所有节点的退化树。
3. 通用的深度优先搜索
- 一般的深度优先搜索目标是在图上进行尽量深的搜索,连接尽量多的顶点,必要时可以进行分支(创建了树),有时候深度优先搜索会创建多棵树,称为“深度优先森林”。
- 深度优先搜索同样要用到顶点的前驱属性,来构建树或森林。另外要设置“发现时间”和“结束时间”属性。前者是在第几步访问到这个顶点(设置灰色),后者是在第几步完成了此顶点探索(设置黑色)。
代码实现:
# BFS采用队列存储待访问顶点
# DFS通过递归调用,隐式使用了栈from pythonds.graphs import Graph
class DFSGraph(Graph):def __init__(self):super().__init__()self.time = 0def dfs(self):for aVertex in self:aVertex.setColor('white') # 颜色初始化aVertex.setPred(-1)for aVertex in self:if aVertex.getColor() == 'white':self.dfsvisit(aVertex) # 如果还有未包括的顶点,则建森林def dfsvisit(self,startVertex):startVertex.setColor('gray')self.time += 1 # 算法的步数startVertex.setDiscovery(self.time)for nextVertex in startVertex.getConnections():if nextVertex.getColor() == 'white':nextVertex.setPred(startVertex)self.dfsvisit(nextVertex) # 深度优先递归访问startVertex.setColor('black') # 节点探索完毕,设为黑色self.time += 1startVertex.setFinish(self.time)
通用的深度优先搜索算法:示例
通用的深度优先搜索算法分析:
- DFS构建的树,其顶点的发现时间和结束时间属性,具有类似括号的性质。即一个顶点的发现时间总小于所有子顶点的发现时间,而结束时间则大于所有子顶点结束时间,比子顶点更早被发现,更晚被结束探索。
- DFS运行时间同样也包括了两方面:dfs函数中有两个循环,每个都是|V|次,所以是O(|V|),而dfsvisit函数中的循环则是对当前顶点所连接的顶点进行,而且仅有在顶点为白色的情况下才进行递归调用,所以对每条边来说只会运行一步,所以是O(|E|),加起来就是和BFS一样的O(|V|+|E|)。
4. 拓扑排序Topological Sort
-
很多问题都可转化为图,利用图算法解决。
-
例如早餐吃薄煎饼的过程,以动作为起点,以先后次序为有向边。
-
问题是对整个过程而言,如果一个人独自做,所有动作的先后次序是什么?
-
从工作流程图得到工作次序排列的算法,称为拓扑排序。拓扑排序处理一个DAG,输出顶点的线性序列,使得两个顶点v, w,如果G中有(v, w)边,在线性序列中v就出现在w之前。
-
拓扑排序广泛应用在依赖事件的排期上,还可以用在项目管理、数据库查询优化和矩阵乘法的次序优化上。
-
拓扑排序可以采用DFS很好地实现:将工作流程建立为图,工作项是节点,依赖关系是有向边,工作流程图一定是个DAG图,否则有循环依赖,对DAG图调用DFS算法,以得到每个顶点的结束时间。按照每个顶点的结束时间从大到小排序,输出这个次序下的顶点列表。
起点从3/4 cup milk开始:
起点从1 cup mix开始:
5. 强连通分支
-
在图中发现高度聚集节点群的算法,即寻找“强连通分支Strongly Connected Components”算法。
-
强连通分支,定义为图G的一个子集C,C中的任意两个顶点v,w之间都有路径来回,即(v,w) (w,v)都是C的路径,而且C是具有这样性质的最大子集。
-
下图是具有3个强连通分支的9顶点有向图,一旦找到强连通分支,可以据此对图的顶点进行分类,并对图进行简化。
-
在用深度优先搜索来发现强连通分支之前,先熟悉一个概念:Transposition转置。一个有向图G的转置GT,定义为将图G的所有边的顶点交换次序,如将(v,w)转换为(w,v)。可以观察到图和转置图在强连通分支的数量和划分上,是相同的。
强连通分支算法:Kosaraju算法思路
- 首先,对图G调用DFS算法,为每个顶点计算结束时间;
- 然后,将图G进行转置,得到GT,再对GT调用DFS算法,但在dfs函数中,对每个顶点的搜索循环里,要以顶点的结束时间倒序的顺序来搜索。
- 最后,深度优先森林中的每一棵树就是一个强连通分支。
Kosaraju算法实例:第一趟DFS
Kosaraju算法实例:转置后第二趟DFS
Kosaraju算法实例:结果
6. 最短路径问题
- 解决信息在路由器网络中选择传播速度最快路径的问题,可转变为在带权图上最短路径的问题。
- 这个问题与广度优先搜索BFS算法解决的词梯问题相似,只是在边上增加了权重,如果所有权重相等,还是还原到词梯问题。
- 解决带权最短路径问题的经典算法是以发明者命名的Dijkstra算法。这是一个迭代算法,得出从一个顶点到其余所有顶点的最短路径,很接近于广度优先搜索算法BFS的结果。
- 具体实现上,在顶点Vertex类中的成员dist用于记录从开始顶点到本顶点的最短带权路径长度(权重之和),算法对图中的每个顶点迭代一次。
- 顶点的访问次序由一个优先队列来控制,队列中作为优先级的是顶点的dist属性。
- 最初,只有开始顶点dist设为0,而其他所有顶点dist设为sys.maxsize(最大整数),全部加入优先队列。
- 随着队列中每个最低dist顶点率先出队,并计算它与邻接顶点的权重,会引起其它顶点dist的减小和修改,引起堆重排。并根据更新后的dist优先级再依次出队。
最短路径问题:Dijkstra算法实例
代码实现:
from pythonds.graphs import PriorityQueue,Graph,Vertex
def dijkstra(aGraph,start):pq = PriorityQueue()start.setDistance(0)pq.buildHeap([(v.getDistance(),v) for v in aGraph]) # 对所有顶点建堆,形成优先队列while not pq.isEmpty():currentVert = pq.delMin() # 优先队列出队for nextVert in currentVert.getConnections():newDist = currentVert.getDistance() + currentVert.getWeight(nextVert)if newDist < nextVert.getDistance(): # 修改出队顶点所邻接顶点的dist,并逐个重排队列nextVert.setDistance(newDist)nextVert.setPred(currentVert)pq.decreaseKey(nextVert,newDist)
需要注意的是,dijkstra算法只能处理大于0的权重,如果图中出现负数权重,则算法会陷入无限循环。虽然dijkstra散发完美解决了带权图的最短路径问题,但实际上Internet的路由器中采用的是其它算法。
最短路径问题:dijkstra算法分析
- 首先,将所有顶点加入优先队列并建堆,时间复杂度为O(|V|);
- 其次,每个顶点仅出队1次,每次delMin花费O(log|V|),一共就是O(|V|log|V|);
- 另外,每个边关联到的顶点会做一次decreaseKey操作(O(log|V|)),一共是O(|E|log|V|);
- 上面三个加在一起,数量级就是O((|V|+|E|)log|V|)。
7. 最小生成树
信息广播问题:单播解法
信息广播问题:洪水解法
信息广播问题:最小生成树
-
信息广播问题的最优解法,依赖于路由器关系图上选取的具有最小权重的生成树(minimum weight spanning tree)。生成树:拥有图中所有的顶点和最少数量的边,以保持连通的子图。
-
图G(V,E)的最小生成树T,定义为:包含所有顶点V,以及E的无圈子集,并且边权重之和最小。
-
这样信息广播就只需要从A开始,沿着树的路径层次向下传播,就可以达到每个路由器只需要处理1次消息,同时总费用最小。
最小生成树:prim算法
-
解决最小生成树问题的Prim算法,属于贪心算法,即每步都沿着最小权重的边向前搜索。
-
构造最小生成树的思路很简单,如果T还不是生成树,则反复做:找到一条最小权重的可以安全添加的边,将边添加到树T。
-
可以安全添加的边,定义为一端顶点在树中,另一端不在树中的边,以便保持树的无圈特性。
最小生成树:prim算法代码实现
from pythonds.graphs import PriorityQueue,Graph,Vertex
import sysdef prim(G,start):pq = PriorityQueue()for v in G:v.setDistance(sys.maxsize)v.setPred(None)start.setDistance(0)pq.buildHeap([(v.getDistance(),v) for v in G])while not pq.isEmpty():currentVert = pq.delMin()for nextVert in currentVert.getConnections():newCost = currentVert.getWeight(nextVert)# nextVert在pq优先队列里,就不在生成树里,说明是可以安全添加的边if nextVert in pq and newCost < nextVert.getDistance():nextVert.setPred(currentVert)nextVert.setDistance(newCost)pq.decreaseKey(nextVert,newCost)
==================================================================
以上均为个人学习笔记总结,学习代码见week18
课程名称:数据结构与算法Python版_北京大学_中国大学MOOC(慕课)
课程主页: http://gis4g.pku.edu.cn/course/pythonds/
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- mtk如何通过adb shell 修改/显示 GPIO 状态
工作过程中做个记录...
2024/4/19 10:50:46 - html中引入公共的html页面几种方法
一、使用jQuery的load函数<body><div id="header1"></div><script>$("#header1").load("page/header1.html");</script> </body>注意:header1中不需要把整个代码写全,以为一个html中只能存在一个body标签,…...
2024/4/15 5:13:45 - Python 面试题目集合1-10
@wuran Python 面试题目集合1-10 1.Python和其他语言的区别 Python属于解释型语言,当程序运行时,是一行一行的解释,并运行,所以调式代码很方便,开发效率高,还有龟叔给Python定位是任其自由发展、优雅、明确、简单,所以在每个领域都有建树,所有它有着非常强大的第三方库…...
2024/4/15 5:13:44 - 5000行python代码+可视化60W数据,告诉你知乎用户不为人知的事!
一次完整的python分析+可视化展示,是什么样的?比如我想知道知乎用户的学历,是否都是985呢?我还想知道知乎最受关注的话题都是些什么?高端人士都喜欢看什么书呢?“人在XX,刚下飞机?”这句话出现的频率有多高呢?最快的方法是用python爬虫然后加BI可视化分析!python爬虫仅…...
2024/4/15 5:13:43 - 剑指OFFER笔记_09_1_斐波那契数列_JAVA实现(非递归)
剑指OFFER笔记_09_1_斐波那契数列_JAVA实现(非递归)题目:解题思路代码函数主体部分代码测试部分代码运行结果截图LeetCode运行截图 题目:求斐波那契数列的第n项解题思路各类课程都用递归的方式来演示,而且通常利用这道题作为递归的引入用例。 递归拥有代码简洁的优点,但是…...
2024/4/15 5:13:43 - BFS_&DFS_314_二叉树的垂直遍历
文章目录题目描述思路 题目描述思路垂直方向按 level 划分,root的level为0,往左 自减1 往右自增 1BFS 会按从上到下的顺序记录下 垂直方向的顺序,然后再用一个字典存储 垂直方向的数据即可(在遍历时垂直方向已经有序)DFS 在遍历时并不能保证垂直方向是有序的,可以额外加…...
2024/4/24 11:16:21 - 定义一个一维数组类Array,成员数组使用动态内存重载自增和自减运算符实现数组元素的自增和自减,具体要求如下:
定义一个一维数组类Array,成员数组使用动态内存重载自增和自减运算符实现数组元素的自增和自减,具体要求如下: 题目要求定义一个一维数组类Array,成员数组使用动态内存重载自增和自减运算符实现数组元素的自增和自减,具体要求如下:#include<iostream> #include<stri…...
2024/4/24 11:16:21 - mysql [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause 的问题
mysql [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause 的问题 解决方案: select version(), @@sql_mode;SET sql_mode=(SELECT REPLACE(@@sql_mode,‘ONLY_FULL_GROUP_BY’,’’));...
2024/4/24 11:16:25 - Flutter学习笔记04:Dart数据类型
编程语言最基本的特征之一就是它支持的数据类型。这些是可以用编程语言表示和操作的值的类型。Dart语言支持以下类型: 1、数字int、double 2、字符串String 3、布尔bool 4、列表(类似于数组)list 5、集合Set 6、映射Map 7、符文(用于表示字符串中的Unicode字符) 8、符号 1、数…...
2024/4/24 11:16:20 - linux 查找文件(个人笔记,非教程)
locate filename 从文件数据库中查找 包含 文件名文件(一般找不到刚创建的文件) sudo updatedb 更新数据库 find -name filename 直接从硬盘中查找 完全匹配 文件(夹)(默认从当前目录及子目录中查找) find -name filename 直接从硬盘中查找 包含 文件(夹)…...
2024/4/24 11:16:16 - 1.2 终端打印 echo
终端打印 echo,printf EchoExample副作用:PrintfExample补充内容 Echo echo 是用于终端打印的基本命令。 默认情况下, echo 在每次调用后会添加一个换行符。 Example使用双引号$ echo "Welcome to Bash"Welcome to Bash使用单引号$ echo Welcome to BashWelcome t…...
2024/4/24 11:16:16 - 实现一个函数,可以左旋字符串中的k个字符。---C语言
实现一个函数,可以左旋字符串中的k个字符。 例如:ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB. 实现字符串的左旋即将字符串的字谜放在字符串的后面,然后在将字符串向前挪。 其实要实现该功能,实现方法很多,我这里写两种。 方法一:将要左旋的字母个数n通过键盘输入…...
2024/4/24 11:16:14 - Java和操作系统交互细节
结合 CPU 理解一行 Java 代码是怎么执行的根据冯诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示。(该图来源于百度)我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元。…...
2024/4/27 5:24:10 - 廖雪峰python教程学习:面向对象编程初体验
面向对象编程初体验 廖雪峰老师的python教程 面向对象编程(Object Oriented Programming)是一种程序设计思想,是将对象作为程序的基本单元,对象包括了数据和操作数据的函数。 数据封装、继承和多态是面向对象的三大特点 例如,处理学生姓名与成绩,在面向过程编程中,我们通…...
2024/4/24 11:16:15 - salesforce的response.getReturnValue()
这些日子在搞salesforce,Lightning语言开发,做一些例子。有些没弄懂的东西,在这儿记录一下。参考:https://www.cnblogs.com/zero-zyq/p/10489626.htmlhttps://trailhead.salesforce.com/en/content/learn/superbadges/superbadge_lcf1,response.getReturnValue()这首先是一…...
2024/4/24 11:16:14 - 如何用asp实现全选全删?
转载自品略图书馆 http://www.pinlue.com/article/2020/06/0308/0210674753046.htmljs文件// JavaScript Documentfunction checkAll(e,itemName){ //全选函数var aa=document.getElementsByName(itemName);for(var i=0;i<aa.length;i++){aa[i].checked=e.checked;}}func…...
2024/4/24 11:16:10 - Github生成SSH可以避免每次输入用户名和密码
参考链接: https://www.cnblogs.com/yuanchaoyong/p/9976895.html...
2024/4/24 11:16:09 - 续更!-手动安装和配置runtime后,matlab无法识别runtime的问题(matlab2019a)
续更: 整理时间:2020-06-06 目录: 1.续更原因 2.问题现象 3.寻找答案的过程 4.另辟蹊径,曲线救国,变相解决问题 5.总结 1.续更原因: 之前写过一篇文章《matlab文件打包为独立可执行程序exe (Matlab R2019a)》。 很多人反馈下面这个问题: 针对手动安装完runtime 后,但…...
2024/4/20 17:39:07 - 微服务+Docker完美教程,全部展现到这2份文档里面了!
如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完美组合,更加方便微服务架…...
2024/4/15 5:13:56 - IntelliJ IDEA+ jquery Easyui+MSSQLSERVER+Servlet 实战5、实战4的补充JavaWeb之servlet详解(转帖)
IntelliJ IDEA+ jquery Easyui+MSSQLSERVER+Servlet 实战5、实战4的补充JavaWeb之servlet详解(转帖)实战4,我讲的太快了,可能大家理解上有些困难,所以我转了这篇文章。一般我学习的过程喜欢在了解详细一个知识点后,以老师给出的笔记为基础,加上自己的理解以及一些实例然…...
2024/4/19 4:37:48
最新文章
- 访问 www.xxx.com 的请求遭到拒绝您未获授权
清除dns缓存:ipconfig /flushdns 清除cookie 关闭浏览器,重新进入...
2024/4/30 21:35:17 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - javaWeb网上零食销售系统
1 绪 论 目前,我国的网民数量已经达到7.31亿人,随着互联网购物和互联网支付的普及,使得人类的经济活动进入了一个崭新的时代。淘宝,京东等网络消费平台功能的日益完善,使得人们足不出户就可以得到自己想要的东西。如今…...
2024/4/30 1:38:10 - 第十一届蓝桥杯物联网试题(省赛)
对于通信方面,还是终端A、B都保持接收状态,当要发送的数组不为空再发送数据,发送完后立即清除,接收数据的数组不为空则处理,处理完后立即清除,分工明确 继电器不亮一般可能是电压不够 将数据加空格再加\r…...
2024/4/30 1:48:30 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/29 23:16:47 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/30 18:14:14 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/30 18:21:48 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/30 9:43:22 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57