假设,我们给定一个 h * w 维的网格。网格中的单元格可以包含灯泡或障碍物。一个灯泡单元格会照亮其右侧、左侧、上方和下方的单元格,并且光线可以穿过单元格,除非障碍物单元格阻挡了光线。障碍物单元格不能被照亮,并且它会阻挡灯泡单元格的光线到达其他单元格。我们在字符串数组中给出了网格,其中 '#' 代表障碍物,'.' 代表空单元格。我们只有一个灯泡,…… 阅读更多
假设,我们给定一个 h * w 维的网格。网格中的单元格可以包含灯泡或障碍物。一个灯泡单元格会照亮自身及其右侧、左侧、上方和下方的单元格,并且光线可以穿过单元格,除非障碍物单元格阻挡了光线。障碍物单元格不能被照亮,并且它会阻挡灯泡单元格的光线到达其他单元格。因此,给定网格中灯泡单元格的位置在数组 'bulb' 中,障碍物单元格的位置在数组 'obstacles' 中,我们有…… 阅读更多
假设,我们给定一个 h x w 维的网格。网格中有两种类型的单元格:白色和黑色单元格。白色单元格用 '.' 表示,黑色单元格用 '#' 表示。现在,网格中有多个黑色单元格,它们形成了一个多边形。我们必须找出多边形的边数。需要注意的是,网格的最外层单元格始终是白色的。因此,如果输入类似于 h = 4,w = 4,grid = {"....", ".##.", ".##.", "...."},则输出将为…… 阅读更多
假设,有 2n 个字母,每个字母上都写着一个 1 到 n 之间的整数。恰好有两个字母上写着相同的数字。这些字母被排列成 m 个堆栈,堆栈 i 上有字母 stack[i]。我们的任务是以以下方式清空所有堆栈:我们必须选择任意两个堆栈并从中移除顶部的字母。我们移除的字母必须在其上写有相同的数字。如果我们可以以这种方式清空 m 个堆栈,…… 阅读更多