网易首页 > 网易号 > 正文 申请入驻

文心一言 VS 讯飞星火 VS chatgpt (300)-- 算法导论22.1 4题

0
分享至

四、给定多图$G=(V,E)$的邻接链表(多图是允许重复边和自循环边的图),请给出一个时间为$O(V+E)$的算法,用来计算该图的“等价”无向图$G^{'}=(V,E^{'})$的邻接链表表示。这里$E^{'}$是将$E$中的冗余边和自循环边删除后余下的边。删除余边指的是将两个结点之间的多条边替换为一条边。如果要写代码,请用go语言。

文心一言:

邻接链表表示

在邻接链表表示中,每个顶点 $v$ 都有一个链表,链表中的每个节点代表一条从 $v$ 出发的边。为了计算 $G^T$,我们需要遍历 $G$ 的每条边,并反转边的方向,添加到 $G^T$ 的相应链表中。

Go语言实现

packagemain
import(
"fmt"
)
//Graph使用邻接链表表示
typeGraphstruct{
verticesint
adjListmap[int][]int
}
//NewGraph创建一个新的图
funcNewGraph(verticesint)*Graph{
return&Graph{
vertices:vertices,
adjList:make(map[int][]int),
}
}
//AddEdge添加一条边到图中
func(g*Graph)AddEdge(u,vint){
g.adjList[u]=append(g.adjList[u],v)
}
//Transpose计算图的转置
func(g*Graph)Transpose()*Graph{
gT:=NewGraph(g.vertices)
foru,adj:=rangeg.adjList{
for_,v:=rangeadj{
gT.AddEdge(v,u)//反转边的方向
}
}
returngT
}
funcmain(){
g:=NewGraph(4)
g.AddEdge(0,1)
g.AddEdge(0,2)
g.AddEdge(1,2)
g.AddEdge(2,0)
g.AddEdge(2,3)
gT:=g.Transpose()
fmt.Println("OriginalGraph:")
foru,adj:=rangeg.adjList{
fmt.Printf("%d->%v\n",u,adj)
}
fmt.Println("\nTransposedGraph:")
foru,adj:=rangegT.adjList{
fmt.Printf("%d->%v\n",u,adj)
}
}

时间复杂度

  • •遍历每条边的时间复杂度是 $O(E)$,其中 $E$ 是边的数量。
  • •对于每条边,我们执行常数时间的操作(添加到另一个图的邻接链表中)。
  • •因此,总的时间复杂度是 $O(E)$。

邻接矩阵表示

在邻接矩阵表示中,我们使用一个二维数组来存储边的信息,其中表示是否存在一条从 $u$ 到 $v$ 的边。为了计算 $G^T$,我们遍历矩阵的上三角(或下三角,取决于你的矩阵表示习惯),并反转边的方向,即将的值赋给。

matrix[u][v]

matrix[u][v]

matrixT[v][u]

Go语言实现(简化版,仅考虑存在性,不考虑边的权重):

//假设使用二维布尔切片表示邻接矩阵
typeGraphMatrix[][]bool
//Transpose计算图的转置
func(gGraphMatrix)Transpose()GraphMatrix{
n:=len(g)
gT:=make(GraphMatrix,n)
fori:=rangegT{
gT[i]=make([]bool,n)
}
fori:=0;iforj:=0;jgT[j][i]=g[i][j]//反转边的方向
}
}
returngT
}
//注意:这里没有完整的GraphMatrix类型实现,因为示例仅关注Transpose函数

时间复杂度

  • •遍历矩阵的每个元素需要 $O(V^2)$ 时间,其中 $V$ 是顶点的数量。
  • •因此,总的时间复杂度是 $O(V^2)$。这在顶点数量远大于边数量时可能不是最高效的。









讯飞星火:

对于邻接链表表示的有向图,我们可以通过遍历每个顶点的邻接链表,将每个顶点的邻接顶点添加到新图的转置顶点的邻接链表中。具体步骤如下:

  1. 1.创建一个新的邻接链表 $G^{T}$,初始化为空。
  2. 2.遍历原图 $G$ 的每个顶点 $v$。
  3. 3.遍历顶点 $v$ 的邻接链表,将每个邻接顶点 $u$ 添加到新图 $G^{T}$ 中顶点 $v$ 的邻接链表中。
  4. 4.返回新图 $G^{T}$。

时间复杂度分析:遍历原图的每个顶点需要 $O(|V|)$ 的时间,遍历每个顶点的邻接链表需要 $O(|E|)$ 的时间,所以总的时间复杂度为 $O(|V| + |E|)$。

对于邻接矩阵表示的有向图,我们可以通过将原图的邻接矩阵进行转置操作来得到新图的邻接矩阵。具体步骤如下:

  1. 1.创建一个新的大小为 $|V| \times |V|$ 的矩阵 $G^{T}$,初始化为全零矩阵。
  2. 2.遍历原图的邻接矩阵 $G$,将 $G[i][j]$ 的值赋给 $G^{T}[j][i]$。
  3. 3.返回新图的邻接矩阵 $G^{T}$。

时间复杂度分析:遍历原图的邻接矩阵需要 $O(|V|^2)$ 的时间,所以总的时间复杂度为 $O(|V|^2)$。

下面是使用 Go 语言实现的代码:

//邻接链表表示的有向图转置
functransposeAdjList(Gmap[int][]int)map[int][]int{
GT:=make(map[int][]int)
forv,neighbors:=rangeG{
for_,u:=rangeneighbors{
GT[u]=append(GT[u],v)
}
}
returnGT
}
//邻接矩阵表示的有向图转置
functransposeAdjMatrix(G[][]int)[][]int{
n:=len(G)
GT:=make([][]int,n)
fori:=rangeGT{
GT[i]=make([]int,n)
}
fori:=0;iforj:=0;jGT[j][i]=G[i][j]
}
}
returnGT
}

360智脑:

邻接链表表示法

在邻接链表表示法中,我们可以直接遍历原图$G$的每个节点的邻接链表,然后将每条边的方向反转后添加到新图$G^{T}$的相应节点上。

Go语言代码实现:

typeGraphstruct{
Vertices[]*Node//存储图中所有节点的指针
}
typeNodestruct{
Valueint
Adjacent[]*Node//存储与该节点相邻的所有节点的指针
}
func(g*Graph)Transpose()*Graph{
transposed:=&Graph{make([]*Node,len(g.Vertices))}
fori,node:=rangeg.Vertices{
transposed.Vertices[i]=&Node{node.Value,make([]*Node,0)}
}
for_,node:=rangeg.Vertices{
for_,adj:=rangenode.Adjacent{
//将边反向添加到转置图中
transposed.Vertices[adj.Value].Adjacent=append(transposed.Vertices[adj.Value].Adjacent,transposed.Vertices[node.Value])
}
}
returntransposed
}

时间复杂度分析:

  • •遍历原图中的每个节点:$O(|V|)$
  • •遍历每个节点的邻接链表:$O(|E|)$

因此,总的时间复杂度为 $O(|V| + |E|)$。

邻接矩阵表示法

在邻接矩阵表示法中,我们可以创建一个新的邻接矩阵,然后遍历原图$G$的邻接矩阵,将矩阵中的每个元素$(i, j)$赋值给新矩阵的$(j, i)$位置,这样就完成了边的反转。

Go语言代码实现:

typeMatrixGraphstruct{
Matrix[][]bool//存储邻接矩阵
}
func(mg*MatrixGraph)Transpose()*MatrixGraph{
transposed:=&MatrixGraph{make([][]bool,len(mg.Matrix))}
fori:=rangemg.Matrix{
transposed.Matrix[i]=make([]bool,len(mg.Matrix))
forj:=rangemg.Matrix[i]{
//将边反向赋值到转置矩阵中
transposed.Matrix[i][j]=mg.Matrix[j][i]
}
}
returntransposed
}

时间复杂度分析:

  • •创建新的邻接矩阵:$O(|V|^2)$
  • •遍历原图的邻接矩阵:$O(|V|^2)$

因此,总的时间复杂度为 $O(|V|^2)$。

总结

对于邻接链表表示法,转置算法的时间复杂度为 $O(|V| + |E|)$,而对于邻接矩阵表示法,转置算法的时间复杂度为 $O(|V|^2)$。在实际应用中,如果图比较稀疏(即$|E|$远小于$|V|^2$),使用邻接链表表示法会更加高效。如果图比较稠密(即$|E|$接近$|V|^2$),则邻接矩阵表示法可能更加合适。

智谱清言:

在图的表示中,邻接链表和邻接矩阵都是常用的方法。邻接链表用于表示无向图和有向图,而邻接矩阵通常用于表示无向图。对于有向图的转置,我们可以分别对邻接链表和邻接矩阵进行操作。

邻接链表的转置

对于邻接链表表示的有向图,转置图可以通过遍历原图的每个顶点,并将原图的出边修改为入边来实现。

packagemain
import(
"fmt"
)
//定义图的顶点结构
typeVertexstruct{
Namestring
Edges[]*Vertex
Visitedbool
}
//计算图的转置
funcTranspose(g*Vertex){
for_,v:=rangeg.Edges{
//遍历顶点v的所有出边
for_,w:=rangev.Edges{
//在原图中查找顶点w指向顶点v的边,并反转
fori,e:=rangew.Edges{
ife==v{
w.Edges[i]=v
break
}
}
}
}
}
funcmain(){
//创建顶点
a:=&Vertex{Name:"A"}
b:=&Vertex{Name:"B"}
c:=&Vertex{Name:"C"}
//建立有向图关系
a.Edges=[]*Vertex{b,c}
b.Edges=[]*Vertex{a}
c.Edges=[]*Vertex{a}
//打印原图
fmt.Println("原图:")
PrintGraph(a)
//计算转置图
Transpose(a)
//打印转置图
fmt.Println("转置图:")
PrintGraph(a)
}
//PrintGraph用于打印图的邻接链表表示
funcPrintGraph(g*Vertex){
g.Visited=true
for_,v:=rangeg.Edges{
if!v.Visited{
fmt.Println(g.Name,"->",v.Name)
PrintGraph(v)
}
}
}

邻接矩阵的转置

对于邻接矩阵表示的有向图,转置图可以通过将原图的每一行变成新图的对应列来实现。

packagemain
import(
"fmt"
)
//计算邻接矩阵的转置
funcTransposeMatrix(mat[][]int)[][]int{
transposed:=make([][]int,len(mat[0]))
fori:=rangetransposed{
transposed[i]=make([]int,len(mat))
}
fori,row:=rangemat{
forj,val:=rangerow{
ifval==1{
transposed[j][i]=1
}
}
}
returntransposed
}
funcmain(){
//创建邻接矩阵
originalMatrix:=[][]int{
{0,1,1},
{0,0,1},
{1,0,0},
}
//计算转置矩阵
transposedMatrix:=TransposeMatrix(originalMatrix)
//打印转置矩阵
fmt.Println("转置矩阵:")
for_,row:=rangetransposedMatrix{
fmt.Println(row)
}
}

算法运行时间分析

  1. 1.对于邻接链表的转置,算法的时间复杂度为O(E),其中E是图中边的数量。这是因为需要遍历每条边一次。
  2. 2.对于邻接矩阵的转置,算法的时间复杂度为O(V^2),其中V是图中顶点的数量。这是因为需要遍历每个矩阵元素一次,而矩阵的大小为V×V。 这些算法都是有效的,并且运行

天工:

要实现一个算法来计算有向图 $G$ 的转置 $G^{T}$,我们可以分别对邻接链表和邻接矩阵两种表示法进行处理。下面我将分别描述这两种情况的算法,并提供Go语言的代码示例。

邻接链表表示法

算法步骤:

  1. 1.创建一个新的邻接链表用于存储转置后的图。
  2. newAdjList
  3. 2.遍历原图的邻接链表。
  4. adjList
  5. 3.对于每条边,将其添加到中。
  6. (u, v)
  7. newAdjList[v]
  8. 4.返回新的邻接链表。
  9. newAdjList

Go语言代码示例:

typeGraphstruct{
vertices[]*Vertex
}
typeVertexstruct{
keyint
adjacent[]*Vertex
}
func(g*Graph)Transpose()*Graph{
gt:=&Graph{make([]*Vertex,len(g.vertices))}
fori:=rangeg.vertices{
gt.vertices[i]=&Vertex{key:i}
}
for_,u:=rangeg.vertices{
for_,v:=rangeu.adjacent{
//Addedge(v,u)tothetransposegraph.
gt.vertices[v.key].adjacent=append(gt.vertices[v.key].adjacent,gt.vertices[u.key])
}
}
returngt
}

运行时间分析:

该算法的运行时间是 O(|V| + |E|),其中 |V| 是顶点的数量,|E| 是边的数量。这是因为我们需要遍历所有的顶点和边一次。

邻接矩阵表示法

算法步骤:

  1. 1.创建一个新的邻接矩阵用于存储转置后的图。
  2. newAdjMatrix
  3. 2.遍历原图的邻接矩阵。
  4. adjMatrix
  5. 3.对于每个元素,将其赋值给。
  6. adjMatrix[i][j]
  7. newAdjMatrix[j][i]
  8. 4.返回新的邻接矩阵。
  9. newAdjMatrix

Go语言代码示例:

typeGraphstruct{
matrix[][]bool
}
func(g*Graph)Transpose()*Graph{
gt:=&Graph{make([][]bool,len(g.matrix))}
fori:=rangegt.matrix{
gt.matrix[i]=make([]bool,len(g.matrix))
}
fori:=rangeg.matrix{
forj:=rangeg.matrix[i]{
//Copytheadjacencyvalueswithswappedindices.
gt.matrix[j][i]=g.matrix[i][j]
}
}
returngt
}

运行时间分析:

该算法的运行时间是 O(|V|^2),其中 |V| 是顶点的数量。这是因为我们需要遍历整个邻接矩阵,而邻接矩阵的大小是 |V| x |V|。

以上代码示例仅为算法的核心部分,实际应用中可能需要添加错误处理、输入输出等其他功能。此外,为了简化代码,假设图中没有重复的边,且顶点编号从0开始连续编号。

chatgpt:

下面是用Go语言编写的从图 G 计算出 G^T 的算法,同时给出了对应的邻接链表和邻接矩阵表示方法:

packagemain
import"fmt"
//图的节点结构体
typeNodestruct{
Valueint//节点的值
Next*Node//下一个节点指针
}
//邻接链表表示法的图结构体
typeGraphstruct{
Vertices[]*Node//图中所有节点的数组
}
//添加有向边到邻接链表
func(g*Graph)AddEdge(u,vint){
newNode:=&Node{Value:v}
ifg.Vertices[u]==nil{
g.Vertices[u]=newNode
}else{
curr:=g.Vertices[u]
forcurr.Next!=nil{
curr=curr.Next
}
curr.Next=newNode
}
}
//输出邻接链表表示的图信息
func(g*Graph)Print(){
fori,node:=rangeg.Vertices{
fmt.Printf("顶点%d:",i)
fornode!=nil{
fmt.Printf("%d",node.Value)
node=node.Next
}
fmt.Println()
}
}
//获取图G的转置图G^T的邻接链表表示法
funcGetTranspose(g*Graph)*Graph{
transpose:=&Graph{
Vertices:make([]*Node,len(g.Vertices)),
}
fori,node:=rangeg.Vertices{
fornode!=nil{
v:=node.Value
//在转置图中添加反向边
transpose.AddEdge(v,i)
node=node.Next
}
}
returntranspose
}
//输出邻接链表表示的转置图信息
funcPrintTranspose(g*Graph){
fmt.Println("转置图G^T:")
g.Print()
}
//邻接矩阵表示法的图结构体
typeMatrixstruct{
Vertices[][]int//邻接矩阵,存储边的连接关系(0表示无边,1表示有边)
}
//初始化邻接矩阵表示的图
funcInitMatrix(numVerticesint)*Matrix{
matrix:=&Matrix{
Vertices:make([][]int,numVertices),
}
fori:=rangematrix.Vertices{
matrix.Vertices[i]=make([]int,numVertices)
}
returnmatrix
}
//添加有向边到邻接矩阵
func(m*Matrix)AddEdge(u,vint){
m.Vertices[u][v]=1
}
//获取图G的转置图G^T的邻接矩阵表示法
funcGetTransposeMatrix(m*Matrix)*Matrix{
numRows:=len(m.Vertices)
numCols:=len(m.Vertices[0])
transpose:=InitMatrix(numRows)
fori:=0;iforj:=0;jifm.Vertices[i][j]==1{
//在转置矩阵中添加反向边
transpose.AddEdge(j,i)
}
}
}
returntranspose
}
//输出邻接矩阵表示的转置图信息
funcPrintTransposeMatrix(m*Matrix){
numRows:=len(m.Vertices)
numCols:=len(m.Vertices[0])
fmt.Println("转置图G^T:")
fori:=0;ifmt.Printf("顶点%d:",i)
forj:=0;jifm.Vertices[i][j]==1{
fmt.Printf("%d",j)
}
}
fmt.Println()
}
}
funcmain(){
//邻接链表表示的有向图G
g:=&Graph{
Vertices:make([]*Node,4),
}
g.AddEdge(0,1)
g.AddEdge(1,2)
g.AddEdge(2,3)
g.AddEdge(3,1)
//输出原始图G的邻接链表表示法
fmt.Println("原始图G:")
g.Print()
//获取转置图G^T的邻接链表表示法并输出
transpose:=GetTranspose(g)
PrintTranspose(transpose)
//邻接矩阵表示的有向图G
m:=InitMatrix(4)
m.AddEdge(0,1)
m.AddEdge(1,2)
m.AddEdge(2,3)
m.AddEdge(3,1)
//输出原始图G的邻接矩阵表示法
fmt.Println("原始图G:")
for_,row:=rangem.Vertices{
fmt.Println(row)
}
//获取转置图G^T的邻接矩阵表示法并输出
transposeMatrix:=GetTransposeMatrix(m)
PrintTransposeMatrix(transposeMatrix)
}

该算法的时间复杂度为 O(V + E),其中 V 是顶点数,E 是边数。转置图的构建过程需要遍历原始图的所有边,并将其反向添加到转置图中,因此总的时间复杂度与顶点和边的数量成正比。

kimi:

有向图的转置图可以通过两种主要的数据结构表示:邻接链表和邻接矩阵。下面我将分别介绍这两种情况下的算法,并提供Go语言的示例代码。

邻接链表表示

对于邻接链表表示的图,我们可以通过遍历每个顶点的邻接列表,然后为每个邻接点添加一条反向边来实现图的转置。这种方法的时间复杂度是O(V + E),其中V是顶点数,E是边数。

Go语言示例代码:

typeVertexstruct{
Valueint
Adj[]Vertex
}
functransposeGraph(graph[]Vertex)[]Vertex{
transposed:=make([]Vertex,len(graph))
for_,v:=rangegraph{
for_,adjV:=rangev.Adj{
//为邻接点添加反向边
found:=false
for_,tV:=rangetransposed[adjV.Value].Adj{
iftV.Value==v.Value{
found=true
break
}
}
if!found{
transposed[adjV.Value].Adj=append(transposed[adjV.Value].Adj,v)
}
}
}
returntransposed
}

邻接矩阵表示

对于邻接矩阵表示的图,我们可以通过交换矩阵的行和列来实现转置。这种方法的时间复杂度是O(V^2)。

Go语言示例代码:

functransposeMatrix(matrix[][]int)[][]int{
n:=len(matrix)
transposed:=make([][]int,n)
fori:=0;itransposed[i]=make([]int,n)
forj:=0;jtransposed[i][j]=matrix[j][i]
}
}
returntransposed
}

算法分析

  • 邻接链表:算法需要遍历每个顶点的邻接列表,对于每条边,需要在邻接点的邻接列表中添加反向边。如果邻接点列表的平均长度是k,则算法的时间复杂度是O(V + E * k)。在最坏的情况下,k可以接近V,此时时间复杂度接近O(V^2)。在最好的情况下,k接近1,时间复杂度接近O(E)。
  • 邻接矩阵:算法需要遍历矩阵的每个元素,并将行和列交换。由于矩阵是VxV的,所以时间复杂度是O(V^2)。

在实际应用中,选择哪种算法取决于图的稀疏程度和可用的内存。对于稀疏图,邻接链表可能更节省内存;而对于密集图,邻接矩阵可能更高效。

混元:

为了计算有向图 $G=(V,E)$ 的转置 $G^T=(V,E^T)$,我们可以分别针对邻接链表和邻接矩阵两种表示方法给出相应的算法,并分析其运行时间。

邻接链表表示法

算法描述

  1. 1.初始化一个空的邻接链表来存储转置图的边。
  2. 2.遍历原图 $G$ 的所有节点。
  3. 3.对于每个节点 $u$,遍历其邻接链表中的所有邻居节点 $v$。
  4. 4.在新的邻接链表中添加一条从 $v$ 到 $u$ 的边。
  5. 5.完成遍历后,新的邻接链表即为转置图 $G^T$。

运行时间分析

  • •时间复杂度:$O(|E|)$,其中 $|E|$ 是原图的边数。因为我们需要遍历每条边两次(一次读取,一次写入)。

邻接矩阵表示法

算法描述

  1. 1.初始化一个与原图大小相同的邻接矩阵来存储转置图的边。
  2. 2.遍历原图 $G$ 的邻接矩阵。
  3. 3.对于矩阵中的每个非零元素(即存在边 $(u, v)$),在转置图的邻接矩阵中对应位置 $(v, u)$ 设置为非零元素。
  4. 4.完成遍历后,新的邻接矩阵即为转置图 $G^T$。

运行时间分析

  • •时间复杂度:$O(|V|^2)$,其中 $|V|$ 是原图的节点数。因为我们需要遍历整个邻接矩阵。

Go 语言实现(邻接链表表示法)

typeEdgestruct{
destint
}
typeAdjacencyListstruct{
edgesmap[int][]Edge
}
funcTransposeGraph(graphAdjacencyList)AdjacencyList{
transposed:=AdjacencyList{edges:make(map[int][]Edge)}
foru,neighbors:=rangegraph.edges{
for_,edge:=rangeneighbors{
v:=edge.dest
transposed.edges[v]=append(transposed.edges[v],Edge{dest:u})
}
}
returntransposed
}
funcmain(){
//示例图的邻接链表表示
graph:=AdjacencyList{edges:map[int][]Edge{
0:{{dest:1}},
1:{{dest:2}},
2:{{dest:0}},
}}
//计算转置图
transposedGraph:=TransposeGraph(graph)
//打印转置图的邻接链表
foru,neighbors:=rangetransposedGraph.edges{
fmt.Printf("Node%d->Nodes:",u)
for_,edge:=rangeneighbors{
fmt.Printf("%d",edge.dest)
}
fmt.Println()
}
}

在这段代码中,我们定义了一个结构体来表示边,以及一个结构体来表示邻接链表。函数接受一个类型的参数,并返回其转置图的邻接链表表示。在函数中,我们创建了一个示例图,并计算并打印了其转置图。

Edge

AdjacencyList

TransposeGraph

AdjacencyList

main

声明:内容由AI生成

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
台湾高中生手持巨幅五星红旗盼回归却被当地教育局严厉审查

台湾高中生手持巨幅五星红旗盼回归却被当地教育局严厉审查

橘色数码
2025-01-06 14:04:12
大结局!连续2个涨停仍200万手封单却突然收函,8万股东被一锅端

大结局!连续2个涨停仍200万手封单却突然收函,8万股东被一锅端

股魂行者
2025-01-06 08:13:39
南通大学校长杨宇民,已任该校党委书记

南通大学校长杨宇民,已任该校党委书记

新京报
2025-01-06 16:00:11
不能留!曼联尝到甜头,阿莫林已经做出选择,轮到利物浦了

不能留!曼联尝到甜头,阿莫林已经做出选择,轮到利物浦了

嗨皮看球
2025-01-06 17:04:57
马德兴:U20国青队最好球员几乎没落下,两名留洋球员泰国会合

马德兴:U20国青队最好球员几乎没落下,两名留洋球员泰国会合

直播吧
2025-01-06 09:16:34
中国护照可免签国家/地区(2025.01)

中国护照可免签国家/地区(2025.01)

布拉旅游说
2025-01-04 08:09:26
全票通过,陈国良履新

全票通过,陈国良履新

鲁中晨报
2025-01-06 00:03:10
31岁小伙相亲,一眼相中女子的嫂子,激动直问:嫂子有对象吗?

31岁小伙相亲,一眼相中女子的嫂子,激动直问:嫂子有对象吗?

农村情感故事
2025-01-06 17:43:20
薄到夸张 三星Galaxy S25 Slim厚度仅6.5mm

薄到夸张 三星Galaxy S25 Slim厚度仅6.5mm

泡泡网
2025-01-06 11:31:20
太阳队内讧升级!2.1亿巨星沦为替补,多人寻求离队,杜兰特后悔

太阳队内讧升级!2.1亿巨星沦为替补,多人寻求离队,杜兰特后悔

阿泰希特
2025-01-06 16:02:17
菲打响首枪,南海形势大变!中方数千援手到位,美国航母连夜后撤

菲打响首枪,南海形势大变!中方数千援手到位,美国航母连夜后撤

猫眼观史
2025-01-02 19:38:52
急!男演员赴泰国拍戏失联,姚晨、舒淇、大鹏、龚俊等多人转发求助

急!男演员赴泰国拍戏失联,姚晨、舒淇、大鹏、龚俊等多人转发求助

都市快报橙柿互动
2025-01-06 10:08:21
刚刚重磅利好突袭国内金融圈,A股火速上热搜,明天或将惊天巨浪

刚刚重磅利好突袭国内金融圈,A股火速上热搜,明天或将惊天巨浪

一丛深色花儿
2025-01-06 11:55:32
中美两军被曝激烈交锋,山东舰遭电子攻击,歼-15战机挂弹升空

中美两军被曝激烈交锋,山东舰遭电子攻击,歼-15战机挂弹升空

张殿成
2025-01-03 14:25:59
罗马诺:塔利斯卡加盟费内巴切本周完成,利雅得胜利准备开绿灯

罗马诺:塔利斯卡加盟费内巴切本周完成,利雅得胜利准备开绿灯

懂球帝
2025-01-06 17:36:15
以色列指认印度为也门胡塞提供导弹,印度怒怼:只许州官放火?

以色列指认印度为也门胡塞提供导弹,印度怒怼:只许州官放火?

墨下
2025-01-06 03:50:47
尹锡悦被逮捕现场,发现三个镜头,个个蕴含深意

尹锡悦被逮捕现场,发现三个镜头,个个蕴含深意

小噎论历史
2025-01-04 15:35:02
曼城赚大了!花2500万淘到宝:20岁新星2场造5球,还激活哈兰德

曼城赚大了!花2500万淘到宝:20岁新星2场造5球,还激活哈兰德

球场没跑道
2025-01-05 15:43:00
外交部:中方有关水电工程经过严谨科学论证

外交部:中方有关水电工程经过严谨科学论证

北青网-北京青年报
2025-01-06 16:47:04
主打“森林主题”,广东清远长隆首期即将试营业

主打“森林主题”,广东清远长隆首期即将试营业

中国青年报
2025-01-06 09:38:10
2025-01-06 18:35:02
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
548文章数 18关注度
往期回顾 全部

科技要闻

国内至少50团队研发AI眼镜 但无核心卖点

头条要闻

多人称在小程序买购物卡后公司失联不发货 涉案百万元

头条要闻

多人称在小程序买购物卡后公司失联不发货 涉案百万元

体育要闻

阿诺德的心飞到马德里了?

娱乐要闻

星星女友辟谣!还未取得联系

财经要闻

瑞立科密销售模式信披或"偷梁换柱"

汽车要闻

10万元级无图智驾 悦也PLUS全路况实测

态度原创

游戏
家居
健康
本地
公开课

《老头环:黑夜君临》浓缩RPG体验 受速通玩法启发

家居要闻

奶油空间 自然晋开四季城

抑郁症患者称好的“乌托邦”宝地

本地新闻

云游中国|冰雪“祁”缘照进现实,谁懂多震撼

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版