随笔分类 - LeetCode刷题
摘要:二分查找的基本框架 int binarySearch(int[] nums, int target) { int left = 0, right = ...; while(...) { int mid = left + (right - left) / 2; if (nums[mid] == tar
阅读全文
摘要:链接:https://zhuanlan.zhihu.com/p/72886883 介绍 快慢指针方法也被称为 Hare & Tortoise 算法,该算法会使用两个在数组(或序列/链表)中以不同速度移动的指针。该方法在处理循环链表或数组时非常有用。 该算法的应用场景: 处理链表或数组中的循环的问题
阅读全文
摘要:贪心专题 cppreferences L455 分配问题 题目链接 贪心算法:优先给需求低的分配最小尺寸的饼干 题解 class Solution { public: int findContentChildren(vector<int>& g, vector<int>& s) { sort(g.b
阅读全文
摘要:题目 链接 求解循环数组中元素的下一个更大元素 中等 题解 最朴素-对每个元素遍历循环数组 class Solution { public: vector<int> nextGreaterElements(vector<int>& nums) { vector<int> NextBigger(num
阅读全文
摘要:题目 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算 最多能有多少个 信封能组成一组“俄罗斯套娃”信封(即
阅读全文
摘要:题目 链接 tag : 栈 使用两个栈去模拟队列 easy 题解 class MyQueue { private: stack<int> QueueOrder; stack<int> StackOrder; public: /** Initialize your data structure her
阅读全文
摘要:题目 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 链接 tag : 按位运算 动态规划 按位运算复习 负数按照补码进行位运算 按位与运算符& 清零(特定位置0):0和任意与操作皆为0 取一个数中指定位:任意位和
阅读全文
摘要:题目 链接 中等难度 其实leetcode的每日一题设计得还是比较精心的,昨天为一维的前缀和,今天这题可以联系到二维的前缀和。 我的提交 sumregion[(r1,c1),(r2,c2)]=presum[r2,c2]-presum[r1-1,c2]-preusum[r2,c1-1]+presum[
阅读全文
摘要:题目 链接 提交的代码 class NumArray { public: vector<int> data; NumArray(vector<int>& nums) { data.resize(nums.size()); for(int i=0;i<nums.size();i++) data[i]=
阅读全文
摘要:[TOC] 关于递归的一些理论和思考 运用递归解决树的问题 “自顶向下”的解决方案 “自底向上”的解决方案 递归是解决树的相关问题最有效和最常用的方法之一。 接下来以这样一个问题:给定一个二叉树,请寻找它的最大深度。进行举例学习 自顶向下 “自顶向下” 意味着在每个递归层级,我们将首先 访问节点来计
阅读全文
posted @ 2020-02-20 16:03
tlamm
摘要:[TOC] 二叉树的前序遍历 前序遍历: root left child right child 题源:Leetcode "144" 递归写法 迭代写法 首先,初步了解一下迭代是什么概念: 迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代
阅读全文
posted @ 2020-02-19 14:59
tlamm

浙公网安备 33010602011771号