
Leetcode
Cainell
这个作者很懒,什么都没留下…
展开
-
leetcode 2021.6.2 每日一题523. 连续的子数组和
523. 连续的子数组和参考题解弄一个变量r = 0来寄存累加和的余数:把数组里的每个数依次加到r上,然后每加一个就当场取个模,根据刚才的规律,多取几次模不影响累加和的余数。原创 2021-06-03 11:40:02 · 135 阅读 · 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 · 147 阅读 · 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 · 161 阅读 · 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 · 144 阅读 · 0 评论 -
leetcode 每日一题 2021.5.5 740. 删除并获得点数
前置题目198. 打家劫舍方法:如果房屋数量大于两间,应该如何计算能够偷窃到的最高总金额呢?对于第 k(k>2) 间房屋,有两个选项:偷窃第 k间房屋,那么就不能偷窃第 k-1间房屋,偷窃总金额为前 k−2 间房屋的最高总金额与第 k间房屋的金额之和。 不偷窃第 k 间房屋,偷窃总金额为前 k-1间房屋的最高总金额。因此推出状态转移方程:Codeclass Solution {public: int rob(vector<int>&a...原创 2021-05-07 15:19:52 · 174 阅读 · 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 · 210 阅读 · 0 评论 -
leetcode 每日一题4.24 377. 组合总和 Ⅳ DP
动态规划参考题解如果给定的数组中含有负数,则会导致出现无限长度的排列。如果允许负数出现,则必须限制排列的最大长度,避免出现无限长度的排列,才能计算排列数。需要dp[i - num] < INT_MAX - dp[i]题目标准“答案”是32位整数,但是不保证递归过程中别的数字爆int( c++。...原创 2021-04-24 13:42:32 · 164 阅读 · 0 评论 -
leetcode 每日一题 4.23 368. 最大整除子集
368. 最大整除子集参考题解原创 2021-04-24 13:09:57 · 153 阅读 · 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 · 110 阅读 · 0 评论 -
Leetcode BFS 图 126.单词接龙II
题目126.单词接龙II难度:困难给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则:1.每次转换只能改变一个字母。2.转换后得到的单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回一个空列表。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例 1:原创 2020-06-13 21:32:20 · 316 阅读 · 0 评论 -
Leetcode DFS 112.路径总和
题目给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1算法java代码/** * Definition fo原创 2020-06-12 23:02:37 · 444 阅读 · 0 评论 -
Leetcode 图遍历题合集 DFS 508.N叉树的最大深度
题目给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。例如,给定一个 3叉树 :我们应返回其最大深度,3。说明:树的深度不会超过 1000。树的节点总不会超过 5000。算法DFSPython3代码class Solution: def maxDepth(self, root: 'Node') -> int: def DFS(root): ls = [] #记录除root之外,以各节原创 2020-06-12 22:52:18 · 271 阅读 · 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 · 218 阅读 · 0 评论 -
Leetcode力扣 面试题56 - II. 数组中数字出现的次数 II
1.题目链接2.题目描述3.算法(1)排序//见博客:Leetcode力扣 面试题56 - II. 数组中数字出现的次数 IIclass Solution { public int singleNumber(int[] nums) { Arrays.sort(nums); for(int i = 0;i<nums.length - 1;++...原创 2020-04-30 00:17:53 · 252 阅读 · 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 · 249 阅读 · 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 · 204 阅读 · 0 评论 -
Leetcode力扣 No.15 三数之和
1.题目链接2.题目描述算法本题的难点在于如何去除重复解。算法流程:复杂度分析双指针法:类似2sum, 不过是这次是求和为 - nums[i]的两个数.先对数组进行排序(增序), 双指针从两侧遍历, 若和大于-nows[i], 右指针向左走,否则左指针向右走.为什么大于时不是左指针向左走呢? 因为左指针相对于右指针更靠近开头, 如果左指针向左走, 容易碰到now元素(low...原创 2020-04-26 22:17:12 · 161 阅读 · 0 评论