Leetcode
Cainell
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 2021.6.2 每日一题523. 连续的子数组和
523. 连续的子数组和 参考题解 弄一个变量r = 0来寄存累加和的余数:把数组里的每个数依次加到r上,然后每加一个就当场取个模,根据刚才的规律,多取几次模不影响累加和的余数。原创 2021-06-03 11:40:02 · 156 阅读 · 0 评论 -
2021-05-21 1035. Uncrossed Lines (dp,动态规划)
关键词:转为公共子序列 1035. 不相交的线 参考题解:动态规划,转化为最长公共子序列。典型的二维动态规划问题。 为了统一方便,数组从0开始一直到n+1. 状态转移方程: class Solution { public: int maxUncrossedLines(vector<int>& A, vector<int>& B) { vector<vector<int>> dp(A.size()+1,ve原创 2021-05-31 12:07:41 · 178 阅读 · 0 评论 -
leetcode 每日一题 5.19 1738. 找出第 K 大的异或坐标值(二维异或) 215. 数组中的第K个最大元素(kth-element)
1738. 找出第 K 大的异或坐标值 解法参考 1.前置异或 2.kth-element问题:手撸快排;手撸堆排序;sort排序或者优先队列。 前置题215. 数组中的第K个最大元素 /*堆排序 */ class Solution { public: //i:从0开始,标号值要加1 void maxHeapify(vector<int>& a,int i,int heapsize){ //l:右子节点,r:l的右边的一个节点 ...原创 2021-05-24 21:32:25 · 192 阅读 · 0 评论 -
leetcode 字典树 每日一题 2021.5.16 208. 实现 Trie (前缀树)(字典树)
前置题目 208. 实现 Trie (前缀树) 前缀树的介绍:参考 代码实现: C++ class Trie { private: bool isEnd; Trie* next[26]; public: /** Initialize your data structure here. */ Trie() { isEnd = false; memset(next,0,sizeof(next)); } /**原创 2021-05-21 10:49:39 · 168 阅读 · 0 评论 -
leetcode 每日一题 2021.5.5 740. 删除并获得点数
前置题目 198. 打家劫舍 方法: 如果房屋数量大于两间,应该如何计算能够偷窃到的最高总金额呢?对于第 k(k>2) 间房屋,有两个选项: 偷窃第 k间房屋,那么就不能偷窃第 k-1间房屋,偷窃总金额为前 k−2 间房屋的最高总金额与第 k间房屋的金额之和。 不偷窃第 k 间房屋,偷窃总金额为前 k-1间房屋的最高总金额。 因此推出状态转移方程: Code class Solution { public: int rob(vector<int>&a...原创 2021-05-07 15:19:52 · 208 阅读 · 0 评论 -
leetcode 第239场周赛
5746. 到目标元素的最小距离 张晴川的代码模板 #pragma comment(linker, "/stack:200000000") #pragma GCC optimize("Ofast") //#pragma GCC optimize(3) //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") //#pragma GCC target("sse3","sse2","sse") //#pr原创 2021-05-02 15:23:43 · 236 阅读 · 0 评论 -
leetcode 每日一题4.24 377. 组合总和 Ⅳ DP
动态规划 参考题解 如果给定的数组中含有负数,则会导致出现无限长度的排列。 如果允许负数出现,则必须限制排列的最大长度,避免出现无限长度的排列,才能计算排列数。 需要 dp[i - num] < INT_MAX - dp[i] 题目标准“答案”是32位整数,但是不保证递归过程中别的数字爆int( c++。 ...原创 2021-04-24 13:42:32 · 185 阅读 · 0 评论 -
leetcode 每日一题 4.23 368. 最大整除子集
368. 最大整除子集 参考题解原创 2021-04-24 13:09:57 · 170 阅读 · 0 评论 -
leetcode 每日4.22 363. 矩形区域不超过 K 的最大数值和
363. 矩形区域不超过 K 的最大数值和 hard 题解参考链接 前置题目:二维前缀和 303. 区域和检索 - 数组不可变 参考题解 关键公式 class NumArray { public: vector<int> sums; //全局变量,初始化为0 NumArray(vector<int>& nums) { int n = nums.size(); sums.resize(n+1); ...原创 2021-04-24 13:03:18 · 133 阅读 · 0 评论 -
Leetcode BFS 图 126.单词接龙II
题目 126.单词接龙II 难度:困难 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 1.每次转换只能改变一个字母。 2.转换后得到的单词必须是字典中的单词。 说明: 如果不存在这样的转换序列,返回一个空列表。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 示例 1:原创 2020-06-13 21:32:20 · 362 阅读 · 0 评论 -
Leetcode DFS 112.路径总和
题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 算法 java代码 /** * Definition fo原创 2020-06-12 23:02:37 · 468 阅读 · 0 评论 -
Leetcode 图遍历题合集 DFS 508.N叉树的最大深度
题目 给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 例如,给定一个 3叉树 : 我们应返回其最大深度,3。 说明: 树的深度不会超过 1000。 树的节点总不会超过 5000。 算法 DFS Python3代码 class Solution: def maxDepth(self, root: 'Node') -> int: def DFS(root): ls = [] #记录除root之外,以各节原创 2020-06-12 22:52:18 · 300 阅读 · 0 评论 -
Leetcode力扣 面试题57. 和为s的两个数字
1.题目链接 2.题目描述 3.算法 (1)双指针法 超时代码 C++ class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; int num1,num2; ...原创 2020-04-30 13:45:00 · 253 阅读 · 0 评论 -
Leetcode力扣 面试题56 - II. 数组中数字出现的次数 II
1.题目链接 2.题目描述 3.算法 (1)排序 //见博客:Leetcode力扣 面试题56 - II. 数组中数字出现的次数 II class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums); for(int i = 0;i<nums.length - 1;++...原创 2020-04-30 00:17:53 · 288 阅读 · 0 评论 -
Leetcode每日一题 面试题56 - I.数组中数字出现的次数
1.题目链接 2.题目描述 3.算法 (1)运用异或运算符的解法 我们先考虑上述问题的简单版本: 一个数组里面只有一个数字出现一次,其他都出现两次,请找出这个数字。这个问题可以用异或的性质解决. 异或的性质,对于整数a,有 (1) a^a=0 (2) a^0=a (3) a^b^c = a^(b^c) = (a^c)b 利用以上的性质, 上面的题目的解法为: public static voi...原创 2020-04-28 22:54:44 · 280 阅读 · 0 评论 -
Leetcode力扣 No.17 电话的号码组合
1.题目链接 2.题目描述 3.算法 利用队列的先进先出的特性, 采用实时更新队列的内容实时遍历. 步骤说明 1.建立一个map哈希表. 2.新建一个队列, 3.将第一个字符串所对应的码表逐步进入到队列中. 4.出队操作, 存储当前出队的string. 5.将此string与后一个字符串所对应的码表中每一个值相加并逐步进入到队列中. 6.最终队列中存储的即为所有情况的string. C++ cl...原创 2020-04-26 23:54:32 · 237 阅读 · 0 评论 -
Leetcode力扣 No.15 三数之和
1.题目链接 2.题目描述 算法 本题的难点在于如何去除重复解。 算法流程: 复杂度分析 双指针法: 类似2sum, 不过是这次是求和为 - nums[i]的两个数. 先对数组进行排序(增序), 双指针从两侧遍历, 若和大于-nows[i], 右指针向左走,否则左指针向右走. 为什么大于时不是左指针向左走呢? 因为左指针相对于右指针更靠近开头, 如果左指针向左走, 容易碰到now元素(low...原创 2020-04-26 22:17:12 · 189 阅读 · 0 评论
分享