随笔分类 - 力扣hot100
摘要:题目链接:283. 移动零 - 力扣(LeetCode) 思路: 分为两个阶段,第一个阶段按序遍历数组,将非零元素放在数组前面;第二个阶段将剩余位置填充为0。 class Solution { public: void moveZeroes(vector<int>& nums) { int inde
阅读全文
摘要:题目链接: 15. 三数之和 - 力扣(LeetCode) 题目要求: 三元组元素索引不可重复,三元组元素不能完全相同。 思路: 首先对数组进行排序,for循环枚举第一个元素,双指针指向第二、三个元素。计算三者之和,如果和大于0,元素偏大,减小右指针;如果小于0,元素偏小,增大左指针。同时注意考虑去
阅读全文
摘要:题目链接: 42. 接雨水 - 力扣(LeetCode) 前后缀分解 依次计算每个宽度为1的柱子所容纳的雨水,可由左右两侧柱子最大高度的最小值减去目前柱子的高度得到,左右两侧柱子的最大高度可分别创建两个数组计算得到。 class Solution { public: int trap(vector<
阅读全文
摘要:题目链接: 11. 盛最多水的容器 - 力扣(LeetCode) 思路: 贪心加双指针。首先先让宽度最大,左指针指向最左端,右指针指向最右端;然后左右指针收缩,此时必然导致宽度减小,如果高度也减小必然不是最大值,而高度由左右指针最小的一个决定,因此移动其中最小的一个。 class Solution
阅读全文
摘要:题目链接:49. 字母异位词分组 - 力扣(LeetCode) 题目概述: 将组成字母相同的字符串放在一起 思路: 所谓“字母异位词”的共同点是组成的字母元素相同,个数相同但是顺序不同。我们可以将所有的字符串按照字典序排列,得到一个新的字符串,字母异位词得到的新字符串相同,然后利用unordered
阅读全文
摘要:题目链接:128. 最长连续序列 - 力扣(LeetCode) 思路: 由于时间复杂度要求O(n),所以排除排序的可能,排序的时间复杂度是O(nlogn)。 考虑使用哈希表,哈希表将查询的时间降到O(1);并且进行剪枝操作,遍历元素是x,如果x-1也在哈希表中,那么x-1为起点的序列一定比x为起点的
阅读全文
摘要:题目链接:1. 两数之和 - 力扣(LeetCode) 题目概述: 在一个数组中找到两个不同的元素使得和为target,返回其数组下标。 暴力解法 思路: 通过两层循环穷举所有可能的元素组合,找到满足条件的两个数 class Solution { public: vector<int> twoSum
阅读全文

浙公网安备 33010602011771号