avatar
文章
101
标签
56
分类
22
首页
归档
标签
分类
关于
很多时候不懂事
搜索
首页
归档
标签
分类
关于

很多时候不懂事

LeetCode67 - 寻找旋转排序数组中的最小值
发表于2026-04-08|算法题练习二分查找|中等•数组•二分查找
📝 题目描述 题目链接:寻找旋转排序数组中的最小值 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2] 若旋转 7 次,则可以得到 [0,1,2,4,5,6,7] 注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]] 。 给你一个元素值 互不相同 的数组 nums ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素 。 你必须设计一个时间复杂度为 O(logn)O(log n)O(logn) 的算法解决此问题。 示例: 1234567891011121314151617示例 1:输入:nums = [3,4,5,1,2]输出:1解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。示例 2:输入:nums = [4,5,...
LeetCode66 - 搜索旋转排序数组
发表于2026-04-08|算法题练习二分查找|中等•数组•二分查找
📝 题目描述 题目链接:搜索旋转排序数组 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 向左旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如,[0,1,2,4,5,6,7] 下标 3 上向左旋转后可能变为 [4,5,6,7,0,1,2]。 给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。 你必须设计一个时间复杂度为 O(logn)O(log n)O(logn) 的算法解决此问题。 示例: 1234567891011121314示例 1:输入:nums = [4,5,6,7,0,1,2], target = 0输出:4示例 2:输入:nums = [4,5,6,7,0,1,2], target = 3输出:-1示例 ...
LeetCode65 - 在排序数组中查找元素的第一个和最后一个位置
发表于2026-04-07|算法题练习二分查找|中等•数组•二分查找
📝 题目描述 题目链接:在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例: 1234567891011121314示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums = [], target = 0输出:[-1,-1] 提示: 0 <= nums.length <= 10^5 -10^9 <= nums[i] <= 10^9 nums 是一个非递减数组 -10^9 <= target <= 10^9 💡 解题思路 方法一:调库 如果元素存在,闭区间左界就是 lower_bound 指向的值的索引,右界就是 upp...
LeetCode64 - 搜索二维矩阵
发表于2026-04-07|算法题练习二分查找|中等•数组•矩阵•二分查找
📝 题目描述 题目链接:搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 示例: 示例 1: 12输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true 示例 2: 12输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13输出:false 提示: m == matrix.length n == matrix[i].length 1 <= m, n <= 100 -10^4 <= matrix[i][j], target <= 10^4 💡 解题思路 方法一:两次二分查找 由于每行的第一个元素大于前一行的最后一个元素,且每行元素是升序的,所以每行的第一个元素大于前一行的第一个元...
LeetCode63 - 搜索插入位置
发表于2026-04-06|算法题练习二分查找|简单•数组•二分查找
📝 题目描述 题目链接:搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(logn)O(log n)O(logn) 的算法。 示例: 1234567891011121314示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4 提示: 1 <= nums.length <= 10^4 -10^4 <= nums[i] <= 10^4 nums 为 无重复元素 的 升序 排列数组 -10^4 <= target <= 10^4 💡 解题思路 方法一:二分查找 题目通过非常简单,使用基础的二分查找即可通过所有测试用例,这里分析一下为什么返回 i 而不是 j。 核心结论: 在代码中,循环的终止条件是 i > j(具体来说,循环结束...
LeetCode62 - N 皇后
发表于2026-04-06|算法题练习回溯|数组•困难•回溯
📝 题目描述 题目链接:N 皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。 示例: 示例 1: 123输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两个不同的解法。 示例 2: 12输入:n = 1输出:[["Q"]] 提示: 1 <= n <= 9 💡 解题思路 方法一:基于集合的回溯 根据题目不难发现,答案的每行一定有且只有一个皇后,因此我们可以...
LeetCode61 - 分割回文串
发表于2026-04-05|算法题练习回溯|中等•字符串•动态规划•回溯
📝 题目描述 题目链接:分割回文串 给你一个字符串 s,请你将 s 分割成一些 子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。 子字符串是字符串中连续的 非空 字符序列。 回文串是向前和向后读都相同的字符串。 示例: 123456789示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]] 提示: 1 <= s.length <= 16 s 仅由小写英文字母组成 💡 解题思路 方法一:动态规划 + 回溯 思路: 由于需要求出字符串 sss 的所有分割方案,因此我们考虑使用搜索 + 回溯的方法枚举所有可能的分割方法并进行判断。 假设我们当前搜索到字符串的第 iii 个字符,且 s[0..i−1]s[0..i−1]s[0..i−1] 位置的所有字符已经被分割成若干个回文串,并且分割结果被放入了答案数组 ...
LeetCode60 - 单词搜索
发表于2026-04-05|算法题练习回溯|中等•数组•字符串•矩阵•深度优先搜索•回溯
📝 题目描述 题目链接:单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: 示例 1: 12输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "ABCCED"输出:true 示例 2: 12输入:board = [['A','B','C','E'],['S',&#...
LeetCode59 - 括号生成
发表于2026-04-05|算法题练习回溯|中等•字符串•动态规划•回溯
📝 题目描述 题目链接:括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 123456789示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"] 提示: 1 <= n <= 8 💡 解题思路 方法一:回溯 这个思路很直观: 如果左括号数量不大于 n,我们可以放一个左括号。如果右括号数量小于左括号的数量,我们可以放一个右括号。 也就是带有剪枝的深度优先搜索(DFS)/回溯。 方法二:动态规划与分治 任何一个合法的括号序列都可以拆分成这样一种结构: "(" + 【合法的括号序列A】 + ")" + 【合法的括号序列B】 如果我们假设当前需要生成 nnn 对括号,我们可以枚举内部包裹的序列 AAA 有 jjj 对括号,那么外部拼接的...
面试问答
发表于2026-04-04|面试准备|面试•实习
1234…11
avatar
azuki
记录一些琐碎的事物
文章
101
标签
56
分类
22
GitHub
公告
This is my Blog
最新文章
LeetCode85 - 零钱兑换2026-04-26
LeetCode84 - 完全平方数2026-04-25
LeetCode83 - 打家劫舍2026-04-23
LeetCode82 - 杨辉三角2026-04-20
LeetCode81 - 爬楼梯2026-04-20
分类
  • LLM手撕练习1
  • 华厦实习9
  • 生活记录2
  • 算法题练习86
    • 二分查找6
    • 二叉树15
    • 动态规划5
    • 双指针4
标签
发癫生活面试实习大语言模型注意力机制华厦简单哈希表中等数组前缀和困难队列滑动窗口单调队列堆字符串数字双指针分治动态规划矩阵模拟排序数学递归链表二分查找栈初级工程师归并排序堆(优先队列)设计双向链表树深度优先搜索二叉树广度优先搜索二叉搜索树
归档
  • 四月 2026 37
  • 三月 2026 40
  • 二月 2026 6
  • 一月 2026 4
  • 十二月 2025 2
  • 七月 2024 11
  • 六月 2024 1
网站信息
文章数目 :
101
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2024 - 2026 By azuki框架 Hexo 8.1.1|主题 Butterfly 5.5.3
搜索
数据加载中