首页 > 其他分享 >999

999

时间:2024-12-07 09:14:53浏览次数:2  
标签:遍历 复杂度 999 棋子 board y0 节点

题目描述

给定一个 8 x 8 的棋盘,只有一个 白色的车,用字符 'R' 表示。棋盘上还可能存在白色的象 'B' 以及黑色的卒 'p'。空方块用字符 '.' 表示。

车可以按水平或竖直方向(上,下,左,右)移动任意个方格直到它遇到另一个棋子或棋盘的边界。如果它能够在一次移动中移动到棋子的方格,则能够 吃掉 棋子。

注意:车不能穿过其它棋子,比如象和卒。这意味着如果有其它棋子挡住了路径,车就不能够吃掉棋子。

返回白车 攻击 范围内 兵的数量

思路

  • 车能攻击到的车最多4个,上下左右各一个。
  • 先遍历棋盘board,找到'车'的位置(x0, y0)。
  • 再让车在上下左右四个方向进行遍历,若当前节点的横纵坐标在[0, 7]范围内,且此节点值为'.',则继续在该方向上遍历。
  • 在每个方向上停留的最后节点,要么是第一个非'.'节点,此时判断其是否为'p'即可,若为'.'则答案加1,要么是已遍历出界。

Python代码

class Solution:
    def numRookCaptures(self, board: List[List[str]]) -> int:
        size = 8
        for i in range(8):
            for j in range(8):
                if board[i][j] == 'R':
                    x0, y0 = i, j
                    break
        ans = 0
        for dx, dy in (0, 1), (0, -1), (-1, 0), (1, 0):
            x, y = x0 + dx, y0 + dy
            while 0 <= x < size and 0 <= y < size and board[x][y] == '.':
                x = x + dx
                y = y + dy
            if 0 <= x < size and 0 <= y < size and board[x][y] == 'p':
                ans = ans + 1
        return ans

复杂度分析

  • 时间复杂度:$O(n^2)$ ,$n$ 为8。
  • 空间复杂度:$O(1)$。

标签:遍历,复杂度,999,棋子,board,y0,节点
From: https://www.cnblogs.com/lonicer4/p/18591712

相关文章

  • 20241206: 999. 可以被一步捕获的棋子数
    给定一个 8x8 的棋盘,只有一个 白色的车,用字符 'R' 表示。棋盘上还可能存在白色的象 'B' 以及黑色的卒 'p'。空方块用字符 '.' 表示。车可以按水平或竖直方向(上,下,左,右)移动任意个方格直到它遇到另一个棋子或棋盘的边界。如果它能够在一次移动中移动到棋子的方格,则能......
  • 1999-2023年上市公司人工智能词频统计数据(年报词频统计)
    1999-2023年上市公司人工智能词频统计数据(年报词频统计)1、时间:1999-2023年2、来源:上市公司年报3、指标:股票代码、公司简称、年报标题、年份、行业名称、行业代码、全文-文本总长度、仅中英文-文本总长度、人工智能水平、人工智能-词频和、人工智能、计算机视觉、图像识别、......
  • 每日一题:https://codeforces.com/contest/1999/problem/D
    题目链接:https://codeforces.com/contest/1999/problem/D#include<iostream>#include<string>#include<vector>usingnamespacestd;intmain(){intn;cin>>n;for(;n>0;n--){stringarr1;stringarr2;......
  • 全国企业持续绿色创新测算数据(1999-2023年)
    数据介绍:数据名称:企业持续绿色创新-测算数据数据范围:A股上市公司数据年份:1999-2023年样本数量:61119条数据说明:保留至少连续3年的数据非缺失企业数据来源:企业年报具体做法:参考何郁冰(2017)的做法,计算持续创新水平。将绿色专利申请的前后期对比来反映创新的持续程度。创新持续性=......
  • 1999-2021年中国分省平均受教育年限面板数据(两份)(全新整理)
    文章目录数据下载地址数据指标说明项目备注数据下载地址数据下载地址点击这里下载数据数据指标说明平均受教育年限指对一定时期、一定区域某一人口群体接受学历教育(包括成人学历教育,不包括各种学历培训)的年数总和的平均数。按照现行学制为受教育年数计算人均受......
  • 基于nodejs_vue+express框架个人健康管理系统的设计与实现_7999g
    个人健康管理系统按照功能由三部分构成的,三部份是用户、医生和管理员。主要功能有出诊医生、预约挂号、健康档案、疾病评枯等。系统软件用户、医生与管理员的功能模块图个人健康服务平台是以医院的状况为起点,综合网络空间开发设计要求。目的是将个人健康通过网络平台变换为在......
  • CF1999G2 Ruler (hard version)
    Easyversion区别就在于\(Easy\)可以询问\(10\)次,因为\(log_2(1000)\)略大于\(10\),而且这个标尺很明显具有单调性,所以可以二分,每次询问可以直接询问\(1\)和\(mid\)即可Hardversion因为只有\(7\)次,所以采用三分,分类讨论\(mid1\timesmid2=cnt\)则\(x\)......
  • [LeetCode]999. 可以被一步捕获的棋子数
    可以被一步捕获的棋子数简单给定一个8x8的棋盘,只有一个白色的车,用字符'R'表示。棋盘上还可能存在白色的象'B'以及黑色的卒'p'。空方块用字符'.'表示。车可以按水平或竖直方向(上,下,左,右)移动任意个方格直到它遇到另一个棋子或棋盘的边界。如果它能够在一次移动中移......
  • 洛谷P1020 [NOIP1999 提高组] 导弹拦截(未完)
    传送门:P1020[NOIP1999提高组]导弹拦截题目大意:一个拦截导弹的系统,每次只能拦截高度不超过上一个的导弹求出:一个系统最多能拦截的导弹数量;要拦截所有导弹最少需要的该系统的数量。思路:第一问:一眼就是最长单调不上升子序列,朴素DP求解,复杂度为O(n^2);请参考,能过掉50%......
  • 爬虫对德州市企业信息采集系统 项目编号:99954(案例分析)
    爬虫对德州市企业信息采集系统摘 要    随着信息技术的快速发展,大数据已经成为现代社会的重要资源。在德州市,为了更好地管理和利用企业信息,德州市政府推出了一套先进的企业信息采集系统。该系统采用了先进的爬虫技术,能够高效地采集、整理和分析各类企业信息,为政府......