当前位置: 首页 > news >正文

中色冶金建设有限公司网站/新浪微指数

中色冶金建设有限公司网站,新浪微指数,做网站要求电脑配置,做公司网站需要学哪些目录 1. 被围绕的区域 🌟🌟 2. 两数之和 II 🌟 3. 二叉树展开为链表 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1…

目录

1. 被围绕的区域  🌟🌟

2. 两数之和 II  🌟

3. 二叉树展开为链表  🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 被围绕的区域

给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。

示例 1:

输入:board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]
输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]
解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为 'X'。 任何不在边界上,或不与边界上的 'O' 相连的 'O' 最终都会被填充为 'X'。如果两个元素在水平或垂直方向相邻,则称它们是“相连”的。

示例 2:

输入:board = [["X"]]
输出:[["X"]]

提示:

  • m == board.length
  • n == board[i].length
  • 1 <= m, n <= 200
  • board[i][j] 为 'X' 或 'O'

出处:

https://edu.csdn.net/practice/26945724

代码:

from typing import List
class Solution:def solve(self, board: List[List[str]]) -> None:"""Do not return anything, modify board in-place instead."""if not board or len(board) == 0:returnm = len(board)n = len(board[0])from collections import dequequeue = deque()for i in range(m):if board[i][0] == "O":queue.append((i, 0))if board[i][n - 1] == "O":queue.append((i, n - 1))for j in range(n):if board[0][j] == "O":queue.append((0, j))if board[m - 1][j] == "O":queue.append((m - 1, j))while queue:x, y = queue.popleft()board[x][y] = "M"for nx, ny in [(x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)]:if 0 <= nx < m and 0 <= ny < n and board[nx][ny] == "O":queue.append((nx, ny))for i in range(m):for j in range(n):if board[i][j] == "O":board[i][j] = "X"if board[i][j] == "M":board[i][j] = "O"
#%%
s = Solution()
board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]
s.solve(board)
print(board)

输出:

[['X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X'], ['X', 'O', 'X', 'X']]


2. 两数之和 II

给定一个已按照 非递减顺序排列  的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。

函数应该以长度为 2 的整数数组的形式返回这两个数的下标值numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。

你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

示例 1:

输入:numbers = [2,7,11,15], target = 9
输出:[1,2]
解释:2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。

示例 2:

输入:numbers = [2,3,4], target = 6
输出:[1,3]

示例 3:

输入:numbers = [-1,0], target = -1
输出:[1,2]

提示:

  • 2 <= numbers.length <= 3 * 10^4
  • -1000 <= numbers[i] <= 1000
  • numbers 按 非递减顺序 排列
  • -1000 <= target <= 1000
  • 仅存在一个有效答案

出处:

https://edu.csdn.net/practice/26945725

代码:

class Solution(object):def twoSum(self, numbers, target):""":type numbers: List[int]:type target: int:rtype: List[int]"""d = {}size = 0while size < len(numbers):if not numbers[size] in d:d[numbers[size]] = size + 1if target - numbers[size] in d:if d[target - numbers[size]] < size + 1:answer = [d[target - numbers[size]], size + 1]return answersize = size + 1
#%%
s = Solution()
print(s.twoSum(numbers = [2,7,11,15], target = 9))
print(s.twoSum(numbers = [2,3,4], target = 6))
print(s.twoSum(numbers = [-1,0], target = -1))

输出:

[1, 2]
[1, 3]
[1, 2]


3. 二叉树展开为链表

给你二叉树的根结点 root ,请你将它展开为一个单链表:

  • 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
  • 展开后的单链表应该与二叉树 先序遍历 顺序相同。

示例 1:

输入:root = [1,2,5,3,4,null,6]
输出:[1,null,2,null,3,null,4,null,5,null,6]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [0]
输出:[0]

提示:

  • 树中结点数在范围 [0, 2000] 内
  • -100 <= Node.val <= 100

进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗?

出处:

https://edu.csdn.net/practice/26945726

代码:

class TreeNode(object):def __init__(self, val):self.val = valself.left = Noneself.right = Noneclass Solution:def flatten(self, root: TreeNode) -> None:"""Do not return anything, modify root in-place instead."""while root != None:if root.left == None:root = root.rightelse:pre = root.leftwhile pre.right != None:pre = pre.rightpre.right = root.rightroot.right = root.leftroot.left = Noneroot = root.rightdef listToTree(lst):if not lst:return Noneroot = TreeNode(lst[0])queue = [root]i = 1while i < len(lst):node = queue.pop(0)if i<len(lst) and lst[i] is not None:node.left = TreeNode(lst[i])queue.append(node.left)i += 1if i<len(lst) and lst[i] is not None:node.right = TreeNode(lst[i])queue.append(node.right)i += 1return rootdef preorderTraversal(root: TreeNode):res = []if not root:return resres.append(root.val)res.extend(preorderTraversal(root.left))res.extend(preorderTraversal(root.right))return ress = Solution()
null = None
nums = [1,2,5,3,4,null,6]
root = listToTree(nums)
s.flatten(root)
print(preorderTraversal(root))

输出:

[1, 2, 3, 4, 5, 6]


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

http://www.jmfq.cn/news/4791313.html

相关文章:

  • 丹东做网站哪家好/今日最新足球推荐
  • 网站免费建站广告机/高级搜索引擎
  • 可以做多边形背景的网站/品牌推广网络公司
  • 装修网站模板/谷歌推广教程
  • wordpress网站弹窗插件/seo产品推广
  • 网站空间租用协议/亚马逊关键词优化怎么做
  • 垂直版面网站/网络运营培训班
  • 中企动力网站建设公司/西安竞价推广托管
  • 鸡西网站制作/网站搭建教程
  • 做卡贴的网站/怎样在百度上发布自己的文章
  • 珠海企业网站制作费用/制作一个网站的全过程
  • 前端做网站需要的技能/第三方关键词优化排名
  • 如果做独立网站赚钱/南宁seo外包服务
  • 网站建设多少钱哪个济南兴田德润有活动吗/世界杯32强排名
  • 国际要闻军事新闻/搜索优化的培训免费咨询
  • 网站建设honmau/app开发网站
  • 门头沟营销型网站建设/郑州网络seo公司
  • 市政府网站开发实例/世界搜索引擎公司排名
  • 做外贸soho 需要有网站吗/网络营销的专业知识
  • 分类网站上怎么做锚文本/百度搜索引擎官网
  • 做的好的微信商城网站/电商关键词排名优化怎么做?
  • 深圳市珠宝网站建设/搭建网站步骤
  • 网站设计草图/俄罗斯搜索引擎yandex推广入口
  • 宿迁建站网/seo云优化公司
  • 民权做网站哪家好/做网站的软件有哪些
  • 用什么软件搭建网站源码/百度指数官网查询
  • 陕西建设厅执业注册中心网站/营销策划是做什么
  • 做电商设计在哪个网站接单/厦门关键词排名提升
  • 用自己的计算机做服务器建网站/百度免费优化
  • 交友网站的设计与实现/槐荫区网络营销seo