保龄球游戏的获胜者----2023/4/30

给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。
保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 。
假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为:
如果玩家在前两轮中击中了 10 个瓶子,则为 2xi 。
否则,为 xi 。
玩家的得分是其 n 轮价值的总和。

返回
如果玩家 1 的得分高于玩家 2 的得分,则为 1 ;
如果玩家 2 的得分高于玩家 1 的得分,则为 2 ;
如果平局,则为 0 。

示例1:

 输入:player1 = [4,10,7,9], player2 = [6,5,2,3]
输出:1
解释:player1 的得分是 4 + 10 + 2*7 + 2*9 = 46 。
player2 的得分是 6 + 5 + 2 + 3 = 16 。
player1 的得分高于 player2 的得分,所以 play1 在比赛中获胜,答案为 1 。

示例2:

输入:player1 = [3,5,7,6], player2 = [8,10,10,2]
输出:2
解释:player1 的得分是 3 + 5 + 7 + 6 = 21 。
player2 的得分是 8 + 10 + 2*10 + 2*2 = 42 。
player2 的得分高于 player1 的得分,所以 play2 在比赛中获胜,答案为 2 。

示例3:

输入:player1 = [2,3], player2 = [4,1]
输出:0
解释:player1 的得分是 2 + 3 = 5 。
player2 的得分是 4 + 1 = 5 。
player1 的得分等于 player2 的得分,所以这一场比赛平局,答案为 0 。

提示:
n == player1.length == player2.length
1 <= n <= 1000
0 <= player1[i], player2[i] <= 10

题解:

class Solution:def isWinner(self, player1: List[int], player2: List[int]) -> int:player_1, player_2 = player1[0], player2[0]if len(player1) > 1:if player_1 == 10:player_1 += player1[1] * 2else:player_1 += player1[1]if player_2 == 10:player_2 += player2[1] * 2else:player_2 += player2[1]if len(player1) > 2:for i in range(2, len(player1)):if player1[i-1] == 10 or player1[i-2] == 10:player_1 += 2 * player1[i]else:player_1 += player1[i]if player2[i-1] == 10 or player2[i-2] == 10:player_2 += 2 * player2[i]else:player_2 += player2[i]if player_1 == player_2:return 0elif player_1 > player_2:return 1else:return 2

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/determine-the-winner-of-a-bowling-game
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

找出叠涂元素----2023/4/30

给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。
从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。
请你找出 arr 中在 mat 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 i 。



提示:
m == mat.length
n = mat[i].length
arr.length == m * n
1 <= m, n <= 105
1 <= m * n <= 105
1 <= arr[i], mat[r][c] <= m * n
arr 中的所有整数 互不相同
mat 中的所有整数 互不相同

题解1:超出时间限制了

class Solution:def firstCompleteIndex(self, arr: List[int], mat: List[List[int]]) -> int:for index, arr_sub in enumerate(arr):for i in range(len(mat)):for j in range(len(mat[0])):if arr_sub == mat[i][j]:mat[i][j] = 0flag = Falsex = 0for z in mat[i]:if z != 0:breakx += 1if x == len(mat[0]):flag = Truey = 0for m in range(len(mat)):if mat[m][j] != 0:breaky += 1if y == len(mat):flag = Trueif flag:return index

题解2:参考

class Solution:def firstCompleteIndex(self, arr: List[int], mat: List[List[int]]) -> int:m, n = len(mat), len(mat[0])row, col = [0]*m, [0]*nhas = {}for i in range(m):for j in range(n):has[mat[i][j]] = (i, j)for index, num in enumerate(arr):i, j = has[num]row[i] += 1col[j] += 1if row[i] == n or col[j] == m:return index

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/first-completely-painted-row-or-column
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

保龄球游戏的获胜者、找出叠涂元素----2023/4/30相关推荐

  1. 窗口分析函数_16_找出最后一个元素

    找出最后一个元素 需求描述 需求:将EMP表里的部门编号为20的SAL字段按照由高到低排序取最后一个ENAME. 解决方法:通过last_value OVER()来完成. 注: 数据库数据集SQL脚本 ...

  2. 窗口分析函数_15_找出第一个元素

    找出第一个元素 需求描述 需求:将EMP表里的部门编号为20的SAL字段按照由高到低排序取第一个ENAME. 解决方法:通过first_value OVER()来完成. 注: 数据库数据集SQL脚本详 ...

  3. 找出第二小元素(算法导论第三版9.1-1题)

    找出第二小元素(算法导论第三版9.1-1题) 时间复杂度Θ(n) 比较次数n+⌈lgn⌉−2次 思路:将元素每次分成2部分,第一部分和第二部分元素成对比较.最终获得最小的元素,记录那些和最小元素比较后 ...

  4. 第1章 游戏之乐——快速找出故障机器

    转载:编程之美_1.5_快速找出机器故障 题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据.其中ID是小于10亿的整数 问题1.在某个时间,如果 ...

  5. 找出N个元素的数组中最大的K个数

    转载请提供原创链接 http://blog.csdn.net/shuiziliu1025/article/details/50958241 题目: 给出 N 个整数(N可能很大,以致无法装入内存),找 ...

  6. 【华为OD机试模拟题】用 C++ 实现 - 找出同班小朋友(2023.Q1)

    最近更新的博客 [华为OD机试模拟题]用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客 使用说明 找出同班小朋友 题目 输入 输出 示例一 输入 输出 说明 Code 使 ...

  7. 【算法题】2660. 保龄球游戏的获胜者

    题目: 给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数. 保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 . 假设玩家在第 i 轮 ...

  8. numpy nonzero 找出非0元素

    import numpy as npa = np.array([[30,40,70],[80,20,10],[50,90,60]])print(a)print(np.nonzero(a)) [[30 ...

  9. javascript --- 从数组中,找出比给定元素大一丁点的元素

    目标如下: 从数组[1,3,2,4,5,6,7]中找到比第1个位置大一丁点的元素 function _findIndex(arr, j){let k = -1;let key = arr[j];for ...

最新文章

  1. 多伦多大学和清华大学创新创业论坛,数据科学研究院建言献策
  2. 【转】托管函数的挂钩(完美版)
  3. python中浮点型和十进制_Python3.2官方文件翻译-工具列表和十进制浮点计算
  4. Training and investigating Residual Nets 自己分析
  5. 缩放浏览器不会换行_深入解析 EventLoop 和浏览器渲染、帧动画、空闲回调的关系...
  6. 埃斯顿工业机器人控制柜_埃斯顿estun伺服电机动力线MS3108B22-22S BDM-GA14
  7. Programe_Of_Beauty:2.17 数组循环位移
  8. linux netfilter路由表,Netfilter策略路由和uRPF
  9. [SLAM基础学习简记]非线性优化
  10. python except exception_Python 获取异常(Exception)信息的几种方法
  11. 5分钟通过Sails.js从零开始开发RESTful API
  12. Discarding previously cached master state
  13. 买房贷款月供怎么算?贷款利息是多少?
  14. python selenium某里国际站网站注册登录验证问题
  15. 2022/5/1 Mybatis框架动态SQL
  16. gtest之断言宏的使用以及三种事件机制
  17. 墙裂推荐6本适用于所有Java程序员阅读书籍
  18. 计算机到路由器用交叉线的好处,路由器与交换机连接-路由器和交换机之间是用交叉线还是用直通线联 – 手机爱问...
  19. AsyncTask的原理
  20. 隔离式DC/DC高压模块5V12V24V转50V110V250V300V380V600V1100V短路保护直流升压可调开关控制电源模块

热门文章

  1. 计算机室的校规英语翻译,关于校规的英语作文带翻译
  2. IDM怎么下载电影电视剧?快来GET
  3. 【9】了解淘宝sdk引入布局模块
  4. SitePoint Podcast#51:真正的Web设计师获得它
  5. 极氪汽车 APP 系统云原生架构转型实践
  6. RecyclerView基本使用方式
  7. CF——1721A - Image
  8. 想做产品经理,首先应该掌握哪些技能
  9. android通知栏广告
  10. UVA 438 - The Circumference of the Circle