刷题
文章平均质量分 81
刷题记录,总结刷题技巧
coolhuhu~
做三四月事,在八九月自有答案。
展开
-
使用STL algorithm 解决一些算法问题
原地将 [first, last) 中的元素重新排列为下一个字典序更大的排列。若当前排列存在下一个更大的排列,则返回 true,并生成下一个更大排列;若不存在,则返回 false,按从小到大的顺序排列。思路:对序列 [1, 1, 1, 0, 0, 0, 0] 做全排列,对于每个排列,输出数字1对应的位置上的元素。从 7 个不同元素中取出 3 个元素的所有组合。,返回删除后数组的新长度。范围内的每个元素分配连续递增的。删除重复出现的元素,使每个元素。原创 2023-09-15 15:14:03 · 74 阅读 · 0 评论 -
单调栈总结
单调栈题目总结,持续更新原创 2022-10-07 13:08:57 · 200 阅读 · 0 评论 -
二分查找(搜索)| leetcode 33. 搜索旋转排序数组
二分查找(搜索)总结(一) | 边界控制问题描述:整数数组 按升序排列,数组中的值 互不相同 。在传递给函数之前, 在预先未知的某个下标 ()上进行了 旋转,使数组变为 (下标 从 0 开始 计数)。例如, 在下标 处经旋转后可能变为 。给你 旋转后 的数组 和一个整数 ,如果 中存在这个目标值 ,则返回它的下标,否则返回 。你必须设计一个时间复杂度为 的算法解决此问题。示例 1:示例 2:示例 3:提示:来源:力扣(LeetCode)链接:https://leetcode.cn原创 2022-06-18 12:55:17 · 120 阅读 · 0 评论 -
二分查找(搜索)总结(一) | 边界控制
二分查找(搜索)中的一个难点是,在查找(搜索)的过程中,如何控制边界。因为二分查找的条件是序列有序,所以在每轮查找中,只需在其上一轮查找范围的一半中进行;二分查找过程中,每轮查找范围的更新,即是对查找边界的更新。二分查找代码的一个难点在于如何准确地对查找边界进行更新,准确控制边界的更新需要理解循环不变量这一概念,并且在更新过程中一直保持循环不变量的定义,不会因边界的更新而发生改变。什么是循环不变量?循环不变量是指,在每轮查找中,查找的元素所落在的查找区间。下面以 leetcode 704. 二分查找 为例,原创 2022-06-18 10:33:15 · 147 阅读 · 0 评论 -
模拟题 | leetcode 498.对角线遍历
模拟类型的解题思路原创 2022-06-14 13:47:04 · 91 阅读 · 0 评论 -
前缀和、差分数组详解
**前缀和:**数组 d[i] 的对应的前缀和为:d[0] + d[1] + ··· + d[i] ;假设数组 d[5] = [ 1, 3, 4, 6, 9 ],该数组的前缀和数组 prefixSum[5] = [ 1, 4, 8, 14, 23] ;**差分数组:**数组 d 对应的差分数组的第 i 个元素 diff[i] = d[i] - d[i-1],(i > 0, diff[0] = d[0]) ;假设数组 d[5] = [ 1, 3, 4, 6, 9 ] ,该数组对应的差分数组 dif原创 2021-09-02 09:56:04 · 328 阅读 · 0 评论