[英雄星球七月集训LeetCode解题日报] 第1日 数组
日报
- 今天是基础题,开心!
题目
一、 2319. 判断矩阵是否是一个 X 矩阵
1. 题目描述
2. 思路分析
这题是上周周赛T1签到题。
直接模拟即可注意斜线上的点判断条件是ij或i+jm-1。
3. 代码实现
lass Solution:
def checkXMatrix(self, grid: List[List[int]]) -> bool:
m,n = len(grid),len(grid[0])
for i in range(m):
for j in range(n):
if i == j and grid[i][j] == 0:
return False
if i+j == m-1 and grid[i][j] == 0:
return False
if not (i==j or i+j==m-1) and grid[i][j] != 0:
return False
return True
二、 599. 两个列表的最小索引总和
链接: 599. 两个列表的最小索引总和
1. 题目描述
2. 思路分析
就转哈希暴力判断即可。
3. 代码实现
class Solution:
def findRestaurant(self, list1: List[str], list2: List[str]) -> List[str]:
r = {v:k for k,v in enumerate(list2)}
mi = inf
ans = []
for i,s in enumerate(list1):
if s in r:
h = i + r[s]
if h == mi:
ans.append(s)
elif h < mi:
ans = [s]
mi = h
return ans
三、 674. 最长连续递增序列
链接: 674. 最长连续递增序列
1. 题目描述
2. 思路分析
- 令dp[i] 代表以i位置为右端点的最长连续递增子串长度,则有:
- 若nums[i]>nums[i-1],dp[i] = dp[i-1]+1
- 否则 dp[i]=1
- 最后max(dp)就是答案。
3. 代码实现
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
n = len(nums)
dp = [1]*n
for i in range(1,n):
if nums[i]>nums[i-1]:
dp[i] = dp[i-1] + 1
return max(dp)
四、 989. 数组形式的整数加法
链接: 989. 数组形式的整数加法
1. 题目描述
2. 思路分析
什么这个那个的,看我python强转!
3. 代码实现
class Solution:
def addToArrayForm(self, num: List[int], k: int) -> List[int]:
return list(map(int,str(int(''.join(map(str,num)))+k)))