返回
力扣刷题,简单+中等(第三十期)
前端
2023-10-25 06:17:39
力扣刷题,是我多年来保持的习惯,也是我提升编程技能的主要途径之一。为了帮助广大程序员提高编程技能,快速掌握算法和数据结构,我定期整理力扣刷题内容,每期精选十道简单和中等难度的题目,附有详细的解题思路和示例代码。欢迎大家关注我的博客,一起学习,共同进步!
本期刷题内容如下:
-
两数之和
- 给你两个整数
a
和b
,返回它们相加的结果。 - 示例:
a = 1, b = 2
,返回3
a = -1, b = 2
,返回1
- 解题思路:
- 直接返回
a + b
即可。
- 直接返回
- 给你两个整数
-
两数相除
- 给你两个整数
a
和b
,返回它们的商。 - 示例:
a = 10, b = 3
,返回3
a = 7, b = -2
,返回-3
- 解题思路:
- 直接返回
a / b
即可。
- 直接返回
- 给你两个整数
-
字符串反转
- 给你一个字符串
s
,返回它的反转字符串。 - 示例:
s = "hello"
,返回"olleh"
s = "A man, a plan, a canal: Panama"
,返回"amanaP :lanac a ,nalp a ,nam A"
- 解题思路:
- 使用内置函数
reversed()
反转字符串即可。
- 使用内置函数
- 给你一个字符串
-
最长公共前缀
- 给你一个字符串数组
strs
,返回它们的最长公共前缀。 - 示例:
strs = ["flower", "flow", "flight"]
,返回"fl"
strs = ["dog", "racecar", "car"]
,返回 ""
- 解题思路:
- 首先找到字符串数组中最短的字符串,然后逐个字符比较,直到遇到不相同的字符为止。
- 给你一个字符串数组
-
回文数
- 给定一个整数
x
,判断它是否回文数。 - 示例:
x = 121
,返回true
x = -121
,返回false
x = 10
,返回false
- 解题思路:
- 将整数转换成字符串,然后比较字符串是否回文即可。
- 给定一个整数
-
爬楼梯
- 假设你正在爬楼梯。需要
n
阶你才能到达楼顶。每次你可以爬1
或2
阶。有多少种不同的方法可以爬到楼顶? - 示例:
n = 2
,返回2
n = 3
,返回3
- 解题思路:
- 这个问题可以用动态规划来解决。假设
f(n)
表示爬到第n
阶楼梯的不同方法数。那么f(n) = f(n-1) + f(n-2)
。
- 这个问题可以用动态规划来解决。假设
- 假设你正在爬楼梯。需要
-
最大子序和
- 给定一个整数数组
nums
,找到一个连续子数组,其和最大。 - 示例:
nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
,返回6
nums = [1]
,返回1
- 解题思路:
- 这个问题可以用动态规划来解决。假设
f(i)
表示以第i
个元素结尾的连续子数组的最大和。那么f(i) = max(f(i-1) + nums[i], nums[i])
。
- 这个问题可以用动态规划来解决。假设
- 给定一个整数数组
-
买卖股票的最佳时机
- 给定一个数组
prices
,其中prices[i]
是某只股票第i
天的价格。你只能买卖这只股票一次。请问你能够获得的最大利润是多少? - 示例:
prices = [7, 1, 5, 3, 6, 4]
,返回5
prices = [7, 6, 4, 3, 1]
,返回0
- 解题思路:
- 这个问题可以用动态规划来解决。假设
f(i)
表示在第i
天卖出股票的最大利润。那么f(i) = max(f(i-1), prices[i] - min(prices[0], ..., prices[i-1]))
。
- 这个问题可以用动态规划来解决。假设
- 给定一个数组
-
单词搜索
- 给定一个二维字符数组
board
和一个字符串word
,判断word
是否存在于board
中。 - 示例:
board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
,返回true
board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"
,返回true
board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"
,返回false
- 解题思路:
- 这个问题可以用回溯法来解决。从
board
中的每个元素开始,向四个方向进行搜索,直到找到word
为止。
- 这个问题可以用回溯法来解决。从
- 给定一个二维字符数组
-
N皇后问题
- 给定一个
n
皇后的棋盘,请找到一种放置方式,使得任何两个皇后都不在同一行、同一列或同一斜线上。 - 示例:
n = 4
,返回以下一种解法:
[".Q..", "...Q", "Q...", "..Q."]
- 解题思路:
- 这个问题可以用回溯法来解决。从第一行第一列开始,尝试放置皇后。如果放置成功,则继续放置下一行;如果放置失败,则回溯到上一行。
- 给定一个
以上是本期力扣刷题内容,希望对大家有所帮助。如果您有任何问题,欢迎在评论区留言。