avatar
文章
85
标签
47
分类
18
首页
归档
标签
分类
关于
很多时候不懂事
搜索
首页
归档
标签
分类
关于

很多时候不懂事

LeetCode70 - 最小栈
发表于2026-04-10|算法题练习栈|中等•栈•设计
📝 题目描述 题目链接:最小栈 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int getMin() 获取堆栈中的最小元素。 示例: 123456789101112131415161718示例 1:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack minStack = new MinStack();minStack.push...
NLLB与SentencePiece在MoeTranslate中的技术实现
发表于2026-04-09|面试准备|面试•实习
LeetCode69 - 有效的括号
发表于2026-04-08|算法题练习栈|简单•字符串•栈
📝 题目描述 题目链接:有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 示例: 1234567891011121314151617181920212223242526272829示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([])"输出:true示例 5:输入:s = "([)]"输出:false 提示: 1 <= s.length <= 10^4 s 仅由括号 '()[]{}' 组成 💡 解题思路 方法一:栈 思路很简单,遇见左括号,直接入栈;遇见右括号: 判断栈是否为空,为空则说明上来就是右括号,直接返回 fal...
LeetCode68 - 寻找两个正序数组的中位数
发表于2026-04-08|算法题练习二分查找|数组•困难•分治•二分查找•高级工程师
📝 题目描述 题目链接:寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。 算法的时间复杂度应该为 O(log(m+n))O(log(m+n))O(log(m+n))。 示例: 1234567891011示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5 提示: nums1.length == m nums2.length == n 0 <= m <= 1000 0 <= n <= 1000 1 <= m + n <= 2000 -10^6 <= nums1[i], nums2[i] <= 10^6 💡 解题思路 方法一:二分查找 把时间复杂度降低到 O(log(m+n...
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 💡 解题思路 方法一:基于集合的回溯 根据题目不难发现,答案的每行一定有且只有一个皇后,因此我们可以...
12…9
avatar
azuki
记录一些琐碎的事物
文章
85
标签
47
分类
18
GitHub
公告
This is my Blog
最新文章
LeetCode70 - 最小栈2026-04-10
NLLB与SentencePiece在MoeTranslate中的技术实现2026-04-09
LeetCode69 - 有效的括号2026-04-08
LeetCode68 - 寻找两个正序数组的中位数2026-04-08
LeetCode67 - 寻找旋转排序数组中的最小值2026-04-08
分类
  • 华厦实习9
  • 生活记录2
  • 算法题练习71
    • 二分查找6
    • 二叉树15
    • 双指针4
    • 哈希3
    • 回溯8
标签
发癫生活面试实习华厦简单哈希表中等数组前缀和困难队列滑动窗口单调队列堆分治动态规划排序字符串数字双指针矩阵模拟数学二分查找递归链表栈初级工程师归并排序堆(优先队列)设计双向链表树深度优先搜索二叉树广度优先搜索二叉搜索树资深工程师并查集
归档
  • 四月 2026 21
  • 三月 2026 40
  • 二月 2026 6
  • 一月 2026 4
  • 十二月 2025 2
  • 七月 2024 11
  • 六月 2024 1
网站信息
文章数目 :
85
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2024 - 2026 By azuki框架 Hexo 8.1.1|主题 Butterfly 5.5.3
搜索
数据加载中