小编cod*_*erx的帖子

没有炸弹的最小路径

给出了大小为N x M的二维矩阵。每个单元格中的数据表示穿越该单元格的时间。一些区块包含表示炸弹的负值。我们需要找到不经过任何炸弹就从[0,0]到达[n-1,m-1]的最短时间。

  • 我需要在这里做BFS还是在Dijkstra吗?如果我做BFS,它如何确定最短时间/最短时间?
  • 如果我做Dijkstra,如何获得从[0,0]单元格到[n-1,m-1]的路径。

矩阵示例:

                        {0, 4, -1, -1, -1, -1, -1, 8, -1},
                        {4, 0, 8, -1, -1, -1, -1, 11, -1},
                        {-1, 8, 0, 7, -1, 4, -1, -1, 2},
                        {-1, -1, 7, 0, 9, 14, -1, -1, -1},
                        {-1, -1, -1, 9, 0, 10, -1, -1, 1},
                        {-1, -1, 4, -1, 10, 0, 2, -1, -1},
                        {-1, -1, -1, 14, -1, 2, 0, 1, 6},
                        {8, 11, -1, -1, -1, -1, 1, 0, 7},
                        {-1, -1, …
Run Code Online (Sandbox Code Playgroud)

algorithm graph shortest-path data-structures

5
推荐指数
1
解决办法
745
查看次数

通用List <>层次结构中的混淆

通配符和子类型 - Oracle文档

本文档的图表显示了使用上限和下限通配符声明的几个List类之间的关系.关系如下图所示:

通用列表层次结构

在右侧层次结构中,List<? super Number>是子类型List<? super Integer>.这不是很困惑吗?

据我解释,List<? super Number>可以通过任何被表示List<type>,其中type或者是Number或超类的Number.同样的逻辑List<? super Integer>也适用.那怎么可能List<? super Number>是一个子类型List<? super Integer>

java generics collections

4
推荐指数
1
解决办法
108
查看次数

分数的方法数

给定一个数字N,打印它可以表示的方式

N = a + b + c + d
Run Code Online (Sandbox Code Playgroud)

1 <= a <= b <= c <= d; 1 <= N <= M
Run Code Online (Sandbox Code Playgroud)

我的观察:

For N = 4: Only 1 way - 1 + 1 + 1 + 1

For N = 5: Only 1 way - 1 + 1 + 1 + 2

For N = 6: 2 ways     - 1 + 1 + 1 + 3
                        1 + 1 + 2 + 2

For …
Run Code Online (Sandbox Code Playgroud)

algorithm numbers dynamic-programming

3
推荐指数
1
解决办法
1176
查看次数

如果玩家最多可以获得4个硬币,那么赢得比赛的策略

两个玩家正在玩游戏,其中每个玩家必须在每个回合中选择1,2,3或4个硬币.总共有n个硬币.拿起最后一枚硬币的玩家,他赢了.设计一个赢得比赛的策略.

什么是解决问题的算法策略,以便我可以赢得比赛,假设我是其中一个球员?

algorithm dynamic-programming

1
推荐指数
1
解决办法
1150
查看次数