ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ARTS挑战第十五周

2021-07-24 14:31:52  阅读:290  来源: 互联网

标签:distance ARTS dist 挑战 vertex E7% source each 第十五


Algorithm

    1. O(1) 时间插入、删除和获取随机元素](https://leetcode-cn.com/problems/insert-delete-getrandom-o1/) insert函数在数组尾部插入元素,使用hash表实现O(1)查找,remove函数使用hash查找,并交换与尾部元素交换后删除。
  • 710. 黑名单中的随机数 sz表示除blacklist之外的元素个数,则需要把blacklist中在[0,sz) 区间的数,映射到[sz,N) 之间、且不是blacklist中的数,通过hash表记录映射关系。

Review

《抗压力–久世浩司》失败的分类以及处理方法

image-20210710151241191

https://en.wikipedia.org/wiki/In_situ

在计算科学种,in situ 是一种不会打断系统正常状态的操作。例如数据库、操作系统的热备份,王者荣耀的热更新(不需要玩家退出游戏)。还有一个经常看到的概念就是in situ查询,就是直接在数据对象上进行查询,而不需要拷贝对象。

贝尔曼福特和迪杰斯特拉算法区别

https://zh.wikipedia.org/wiki/%E8%B4%9D%E5%B0%94%E6%9B%BC-%E7%A6%8F%E7%89%B9%E7%AE%97%E6%B3%95

贝尔曼福特时间复杂度:O(|V| |E|)

算法伪代码

procedure BellmanFord(list vertices, list edges, vertex source)
   // 讀入邊和節點的列表並對distance和predecessor寫入最短路徑

   // 初始化圖 O(|V|)
   for each vertex v in vertices:
       if v is source then distance[v] := 0
       else distance[v] := infinity
       predecessor[v] := null

   // 對每一條邊重複操作 O(|V| |E|)
   for i from 1 to size(vertices)-1:
       for each edge (u, v) with weight w in edges:
           if distance[u] + w < distance[v]:
               distance[v] := distance[u] + w
               predecessor[v] := u
   // 檢查是否有負權重的回路 O(|E|)
   for each edge (u, v) with weight w in edges:
       if distance[u] + w < distance[v]:
           error "圖包含負權重的回路"

image-20210716131757169

迪杰斯特拉时间复杂度:O(|V|^2) ,dist使用数组实现;O(log|V|(|V|+|E|)) ,dist使用二叉堆实现。使用二叉堆实现时,二叉堆存储的是pair<顶点号, 距离>,表示dist[顶点号]=距离。

伪代码:

 1  function Dijkstra(Graph, source):
 2
 3      create vertex set Q
 4
 5      for each vertex v in Graph:            
 6          dist[v] ← INFINITY                 
 7          prev[v] ← UNDEFINED                
 8          add v to Q                     
 9      dist[source] ← 0                       
10     
11      while Q is not empty:
12          u ← vertex in Q with min dist[u]   
13                                             
14          remove u from Q
15         
16          for each neighbor v of u:           // only v that are still in Q
17              alt ← dist[u] + length(u, v)
18              if alt < dist[v]:              
19                  dist[v] ← alt
20                  prev[v] ← u
21
22      return dist[], prev[]

内部网关路由协议

image-20210716162204177

Tips

  1. gitmind.com 开始收费,但是gitmind.cn 不收费
  2. 屏幕的高度以及良好的坐姿真的很重要,特别是程序员
  3. 跑步的步频很重要,前期一直是160的步频,并且步幅比较大,这样很伤膝盖,也废腿
  4. 没事多看看力扣和牛客网的面经,就知道自己有多菜,瞬间动力满满

Share

标签:distance,ARTS,dist,挑战,vertex,E7%,source,each,第十五
来源: https://blog.csdn.net/Fei20140908/article/details/119057910

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有