leetcode每天5题-Day47

“回溯是递归的副产品,只要有递归就会有回溯。” b站-回溯算法理论基础 回溯其实就是纯暴力搜索,一些问题没法用for循环。 回溯可以解决:组合、切割、子集、排列、棋盘这类问题 1.组合 77. 组合-中等 b站-代码随想录 递归就是用来控制有多少层for循环。k=2时我们可以用两层for循环,那k=50时咋办呢? 回溯法👇 var combine = function(n, k) { const ans = [], path = []; const backtracing = (n...

leetcode每天5题-Day49-贪心1

贪心算法专项 什么是贪心算法-代码随想录 “贪心的本质是选择每一阶段的局部最优,从而达到全局最优。” 1.分发饼干 455. 分发饼干-简单 思路:“这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。” 小饼干先喂饱小胃口 var findContentChildren = function(g, s) { g.sort((a, b) => a - b); s.sort((a, b) => a - b); let i = 0...

Leetcode 刷题笔记:数组篇

发布时间:2022-10-29 LEETCODE 数据结构 算法 LEETCODE刷题笔记
二分查找:  1.Leetcode 704 二分查找(题解) 难度:⭐️ 这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。 小Tips: 1.while循环内的条件为区间(左闭右闭/左闭右开)成立的条件,前者为left<=right,后者为left<right 2.防止两个int相加越界,改进写法:int middl...

LeetCode·每日一题·481.神奇字符串·模拟构造

作者:小迅 链接:https://leetcode.cn/problems/magical-string/solutions/1938345/mo-ni-gou-zao-zhu-shi-chao-ji-xiang-xi-b-r9og/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 给你一个整数 n ,返回在神奇字符串 s 的前 n 个数字中 1 的数目。 因为 s 是唯一的,只是对不同的长度统计 1 的个数,那么我们可以将...

LeetCode·每日一题·1662.检查两个字符串数组是否相等·模拟

作者:小迅 链接:https://leetcode.cn/problems/check-if-two-string-arrays-are-equivalent/solutions/1940747/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-kkn4/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 题意 -> 判断两个字符串数组合并之后的两个字符串是否相等 可以直接将两个字符串数组...

【Leetcode刷题笔记06】454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和

发布时间:2022-11-01 LEETCODE 哈希算法 算法 LEETCODE刷题笔记
454. 四数相加 II 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 做题思路 本题可以使用哈希表,key为nums1[i] + nums2[j]的和,value为其出现的次数。然后再遍历nums3和nums4,如果存在key为0-(nums3[k]...

LeetCode·每日一题·1620.网络信号最好的坐标·模拟

作者:小迅 链接:https://leetcode.cn/problems/coordinate-with-maximum-network-quality/solutions/1942998/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-vlhn/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 题目很长而且不好懂,看懂题目就很容易了 名词解释: 欧几里得距离 不要被“欧几里得”距离整懵,...

LeetCode·每日一题·754.到达终点数字·数学

题目   示例   思路 如果不回头地往终点走 nnn 步,并恰好能走到终点,那么答案就是 nnn。 如果无法恰好走到终点,就需要仔细讨论了:     代码 int reachNumber(int target){ target = abs(target);//奇偶只是方向不同,实质比较是一样的 int n = 0, count = 0; while(n < target || (n - target) % 2)//模拟寻路 { n += ++count; ...

LeetCode·每日一题·1106.解析布尔表达式·栈模拟

发布时间:2022-11-05 LEETCODE JAVA 算法 LEETCODE刷题笔记
作者:小迅 链接:https://leetcode.cn/problems/parsing-a-boolean-expression/solutions/1949545/zhan-mo-ni-zhu-shi-chao-ji-xiang-xi-by-x-fyyq/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 使用栈模拟计算过程,通过题目可以发现每一次有效运算都有三部分组成: < 运算符 > ( < 元素 ...

LeetCode·每日一题·1678.设计 Goal 解析器·双指针

发布时间:2022-11-06 LEETCODE JAVA 算法 LEETCODE刷题笔记
作者:小迅 链接:https://leetcode.cn/problems/goal-parser-interpretation/solutions/1951781/shuang-zhi-zhen-zhu-shi-chao-ji-xiang-xi-peg5/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 据题意可以知道字符串 command 一定由三种不同的字符串 “G,“(),“(al) 组合而成,其中的转换规则如下: ...

【Leetcode刷题笔记09】28. 找出字符串中第一个匹配项的下标 459. 重复的子字符串

发布时间:2022-11-05 LEETCODE JAVA 算法 LEETCODE刷题笔记
28. 找出字符串中第一个匹配项的下标 题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 参考代码 class Solution { public int strStr(String haystack, String needle) { int m = needle.length(); ...

【Leetcode刷题笔记10】20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

发布时间:2022-11-05 LEETCODE JAVA 算法 LEETCODE刷题笔记
20. 有效的括号 题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 参考代码 class Solution { public boolean isValid(String s) { Deque<Character> deque = new LinkedList<>(); ...

【Leetcode刷题笔记11】239. 滑动窗口最大值 347. 前 K 个高频元素

239. 滑动窗口最大值 题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 ...

leetcode:4.寻找两个正序数组的中位数

4. 寻找两个正序数组的中位数 这个题可以就用最普通的合并两个数组或者双指针来做,不过这样做时间复杂度为O(m + n),达不到题目要求的log。所以只有利用二分查找的思路来做。 我们要找中位数,假设中位数是两个数组合并后的第k个数(我们这里说的第k是从下标为1数着走的),其实我们要找的就是两个数组中第k小的数,对于数组总长为偶数的两个数组,要找的就是第k小和第k+1小的数。所以现在问题转变为找两个正序数组中第k小的数了。 比较两个数组k/2的位置(即A[k/2-1]和B[k/2-1]),如果A[k/2...

leetcode每天5题-Day50

发布时间:2022-11-07 LEETCODE 数据结构 算法 LEETCODE刷题笔记
1.仅执行一次字符串交换能否使两个字符串相等 1790. 仅执行一次字符串交换能否使两个字符串相等-简单 自己的解法 思路:利用count计数不相等字符的对数,超过两对返回false,利用a b记录两对不相等字符的下标。 var areAlmostEqual = function(s1, s2) { let a = 0, b = 0, count = 0; for(let i = 0; i < s1.length; i++) { if(s1[i] !== s2[i] &...

LeetCode·每日一题·816.模糊坐标·模拟

发布时间:2022-11-07 LEETCODE 算法 C语言 LEETCODE刷题笔记
作者:小迅 链接:https://leetcode.cn/problems/ambiguous-coordinates/solutions/1953770/by-xun-ge-v-gjyg/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例     思路 只有一个逗号,依次遍历每个位置。得到n 组数据。 示例:原数组【123】。遍历逗号的位置,得到数组:【1,23】【12,3】针对每一组数据求结果: 每一组数据分为 left data,...

Leetcode 刷题笔记:哈希表篇

基本概念 哈希表:根据关键码的值而直接进行访问的数据结构 那么哈希表能解决什么问题呢,一般哈希表都是用来快速判断一个元素是否出现集合里。  哈希函数:  哈希碰撞: 一般哈希碰撞有两种解决方法, 拉链法和线性探测法。   常见的三种哈希结构: 数组array,集合set,映射map。 在C++中,set 和 map 分别提供以下三种数据结构,其底层实现以及优劣如下表所示: 集合底层实现是否有序数值是否可以重复能否更改数值查询效率增删效率std::set红黑树有序否否O(log n)O(log n)s...

LeetCode·每日一题·1684.统计一致字符串的数目·模拟

作者:小迅 链接:https://leetcode.cn/problems/count-the-number-of-consistent-strings/solutions/1955972/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-qs3n/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 给定字符串 判断 字典串中的子串中的字符 是否在 给定字符串中也存在,返回多少个存在的子串个数 ...

leetcode每天5题-Day51

上一篇:回溯算法的组合问题 这一篇记录回溯算法的切割问题与子集问题。 1.分割回文串 131. 分割回文串-中等 b站视频讲解 难点: 切割问题如何抽象为组合问题?用什么模拟切割线?递归终止条件 function isPalindrome(s, l, r) { while(l <= r) { if(s[l] !== s[r]) { return false; } l++, r--; } return true;}v...

LeetCode·每日一题·764.最大加号标志·动态规划

发布时间:2022-11-09 LEETCODE 算法 动态规划 LEETCODE刷题笔记
作者:小迅 链接:https://leetcode.cn/problems/largest-plus-sign/solutions/1958443/dong-tai-gui-hua-zhu-shi-chao-ji-xiang-x-nxil/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 题目要求返回给定数组中的最大 '+' 的长度,其中 '+' 的有效元素为 1 ,无效元素为 0, 简单来说就是 1 能组成的 '+' 最长...

LeetCode·每日一题·864.获取所有钥匙的最短路径·广度优先搜索

作者:小迅 链接:https://leetcode.cn/problems/shortest-path-to-get-all-keys/solutions/1960590/yan-du-you-xian-sou-suo-zhu-shi-chao-ji-75r4k/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 正常的广度优先遍历只需要使用一个数组充当队列,并且用入参获取迭代结果就可以了,但是这个题需要记录的东西太多了。思路...

leetcode每天5题-Day52(回溯-3)

这是回溯算法的第三篇,排列问题和棋盘问题。 前两篇👇 回溯-组合问题 回溯-分割与子集问题 排列问题与组合问题的区别:排列跟顺序有关,当元素相同但元素顺序不同的时是不同的排列。 1. 全排列 46. 全排列-中等 b站视频讲解 注:代码与之前的不同之处,回溯函数里没有index参数,for循环里i每次都是从0开始。因为每次向path里增加元素只是根据used数组来判断。 var permute = function(nums) { const ans = [], path = []; le...

LeetCode·每日一题·1704.判断字符串的两半是否相似·双指针

发布时间:2022-11-11 LEETCODE 数据结构 算法 LEETCODE刷题笔记
题目   示例   思路 给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。判断 a 和 b 是否拥有相同数量的元音字母 直接双指针 一个 从头开始 一个 从尾开始 进行检索,记录元音字符个数,最后判断是否拥有相同数量的元音字母 即可 代码 bool halvesAreAlike(char * s){ int len = strlen(s); char *h = aeiouAEIOU; int sum1 = 0, sum2 = 0; int ...

leetcode每天5题-Day53-贪心2

发布时间:2022-11-14 LEETCODE 数据结构 算法 LEETCODE刷题笔记
1.K 次取反后最大化的数组和 1005. K 次取反后最大化的数组和-简单 排序:按绝对值大小从大到小排序,当k大于0时遇到负数就取反。 var largestSumAfterKNegations = function(nums, k) { nums.sort((a, b) => Math.abs(b) - Math.abs(a)); for(let i = 0; i < nums.length; i++) { if(nums[i] < 0 &&a...

LeetCode·每日一题·805.数组的均值分割·递归回溯

题目   示例   思路 数组分为 两个组,使得两个数组的平均值相同 可以使用递归的方法,枚举每一个元素的归属组合,并寻找符合要求的一个组合,但是会超时。。。。。 代码 bool dfs(int *nums, int numsSize, int index, float leftSum, float leftCount, float rightSum, float rightCount) { if (leftSum / leftCount == rightSum / rightCount) { ...

【Leetcode刷题笔记13】102. 二叉树的层序遍历 226. 翻转二叉树 101. 对称二叉树

102. 二叉树的层序遍历 题目描述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 做题思路 本题属于二叉树的基础题目,需要牢牢掌握。 参考代码 class Solution { public List<List<Integer>> resList = new ArrayList<List<Integer>>(); public List<List<Integer>> ...

【Leetcode刷题笔记12】144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历

发布时间:2022-11-12 LEETCODE JAVA 算法 LEETCODE刷题笔记
144. 二叉树的前序遍历 题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 做题思路 本题属于二叉树的基础题目,需要牢牢掌握。 参考代码 class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<Integer>(); preorder(root, re...

LeetCode刷题笔记:深度优先搜索

发布时间:2022-11-09 LEETCODE 算法 深度优先 LEETCODE刷题笔记
题目        简述         一张方格地图,只能像上下左右四个方向移动,且需要满足题目条件,求所有能遍历的方格。 方法         深度优先搜索、广度优先搜索         具体可以看这位大佬的讲解:(DFS)深度优先搜索算法详解 程序(LeetCode上可成功运行) class Solution(object): def movingCount(self, m, n, k): :type m: int :type n: int ...

LeetCode·每日一题·1710.卡车上的最大单元数·贪心

作者:小迅 链接:https://leetcode.cn/problems/maximum-units-on-a-truck/solutions/1971242/tan-xin-zhu-shi-chao-ji-xiang-xi-by-xun-59r1i/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 给定整数 truckSize 表示卡车上可以装载 箱子 的 最大数量 。只要箱子数量不超过 truckSize ,你就可以选...

【Leetcode刷题笔记04】24. 两两交换链表中的节点 19. 删除链表的倒数第 N 个结点 面试题 02.07. 链表相交 142. 环形链表 II

发布时间:2022-10-29 链表 数据结构 LEETCODE LEETCODE刷题笔记
24. 两两交换链表中的节点 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 做题思路 可以设置虚拟头结点cur和画图来方便理清逻辑。 参考代码 class Solution { public ListNode swapPairs(ListNode head) { ListNode v=new ListNode(0);//虚拟头结点 v.next=head;//虚拟头结点指...

LeetCode·每日一题·775.全局倒置与局部倒置·模拟

作者:小迅 链接:https://leetcode.cn/problems/global-and-local-inversions/solutions/1973287/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-9npc/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 一个局部倒置一定是一个全局倒置,因此要判断数组中局部倒置的数量是否与全局倒置的数量相等,只需要检查有没有非局部倒置就可...

LeetCode·每日一题·775.全局倒置与局部倒置·模拟

作者:小迅 链接:https://leetcode.cn/problems/global-and-local-inversions/solutions/1973287/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-9npc/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 一个局部倒置一定是一个全局倒置,因此要判断数组中局部倒置的数量是否与全局倒置的数量相等,只需要检查有没有非局部倒置就可...

LeetCode·每日一题·792.匹配子序列的单词数·预处理

作者:小迅 链接:https://leetcode.cn/problems/number-of-matching-subsequences/solutions/1975710/yu-chu-li-fen-zu-zhu-shi-chao-ji-xiang-x-uoj0/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   思路 从题目意思可以得知,我们需要在字典串中寻找 存在多少个子串 为 s 的子序列 对于字典串的相关操作,最些想到的就是 线...

【Leetcode刷题笔记07】344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

发布时间:2022-11-03 LEETCODE C++ 算法 LEETCODE刷题笔记
344. 反转字符串 题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**、使用 O(1) 的额外空间解决这一问题。 做题思路 字符串有很多库函数可以用,对于字符串翻转的话,尽量还是不用库函数。 参考代码 class Solution { public void reverseString(char[] s) { int l = 0; int r = s.length...

LeetCode·每日一题·891.子序列宽度之和·数学

作者:小迅 链接:https://leetcode.cn/problems/sum-of-subsequence-widths/solutions/1977750/by-xun-ge-v-3vwx/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 假如数组:[2,1,3],因为子序列顺序不会对结果产生影响 比如它的子序列[1], [2], [3], [2,1], [2,3], [1,3], [2,1,3] 跟[1,2,3]的...

leetcode每天5题-Day54(贪心3)

1. 用最少数量的箭引爆气球 452. 用最少数量的箭引爆气球-中等 局部最优:当气球重叠时,一起射,所用弓箭最少。 对数组排序,如果气球重叠了,重叠气球中右边边界的最小值 之前的区间一定需要一个弓箭。 var findMinArrowShots = function(points) { points.sort((a, b) => a[0] - b[0]); let ans = 1; for(let i = 1; i < points.length; i++) { ...

66、leedcode之加一

题目: 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2cv1c/   示例 1: 输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。 示例 2: 输入:digits = [4,3...

36、leedcode之有效的数独

发布时间:2022-11-16 C++ JAVA 开发语言 LEETCODE刷题笔记
题目: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)   注意: 一个有效的数独(部分已被填充)不一定是可解的。 只需要根据以上规则,验证已经填入的数字是否有效即可。 空白格用 '.' 表示。 链接:https://leetcode.cn/leetbook/read/top-interview-...

LeetCode·每日一题·799.香槟塔·模拟

作者:小迅 链接:https://leetcode.cn/problems/champagne-tower/solutions/1982607/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-cvdb/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 我们 定义一个二维数组来模拟杯子 ,然后根据题意 进行模拟,如果当前杯子的上一个杯子 到满了 就将剩余的酒分一半给当前杯子,然后根据这个规则,...

LeetCode·每日一题·808.分汤·动态规划

作者:小迅 链接:https://leetcode.cn/problems/soup-servings/solutions/1982980/dong-tai-gui-hua-zhu-shi-chao-ji-xiang-x-p6fm/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 概率的乘法和加法问题:第一步有四种选择,每种的概率都是0.25,第二步也有四种选择,概率也都是0.25……如此不断进行,直到这两碗破汤同时被分完了...

【Leetcode刷题笔记05】242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

发布时间:2022-10-31 LEETCODE 哈希算法 算法 LEETCODE刷题笔记
242.有效的字母异位词 题目描述 给定两个字符串 *s* 和 *t* ,编写一个函数来判断 *t* 是否是 *s* 的字母异位词。 **注意:**若 *s* 和 *t* 中每个字符出现的次数都相同,则称 *s* 和 *t* 互为字母异位词。 做题思路 本题可使用两个数组一个统计s的字母,一个统计t的字母。 参考代码 class Solution { public boolean isAnagram(String s, String t) { int[] record=new int[...

LeetCode·每日一题·878.第N个神奇数字·二分查找

链接:https://leetcode.cn/problems/nth-magical-number/solutions/1984767/er-fen-cao-zuo-zhu-shi-chao-ji-xiang-xi-5nfti/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   思路 按照题目意思直接暴力枚举,a和b的所有倍数,然后取 第 n 个 倍数即可,但是 n 有 10^9 次大小,肯定是会超的,所以需要优化时间。 从两个方面进行优...

283、leedcode之移动零

发布时间:2022-11-13 LEETCODE 数据结构 算法 LEETCODE刷题笔记
题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2ba4i/ 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums = [0] 输出: [0]   提示: 1 <= num...

LeetCode·每日一题·1742.盒子中小球的最大数量·哈希

作者:小迅 链接:https://leetcode.cn/problems/maximum-number-of-balls-in-a-box/solutions/1986502/ha-xi-zhu-shi-chao-ji-xiang-xi-by-xun-ge-hg14/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 题目要求我们对所有球按编号和进行分组,最后返回最大数量的分组。 我们可以枚举所有球的编号和,并用哈希表对数据...

leetcode每天5题-Day43(二叉树8)

发布时间:2022-12-03 LEETCODE 数据结构 算法 LEETCODE刷题笔记
1. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先-中等 讲解 思路:遍历顺序很重要,因为要把左子树和右子树的结果返回给根节点,所以要自底向上遍历,只能采用后序遍历(即回溯)。 var lowestCommonAncestor = function(root, p, q) { // 1. 确定递归的函数 const travelTree = function(root,p,q) { // 2. 确定递归终止条件 if(root === null || r...

1、leedcode之两数之和

发布时间:2022-11-14 LEETCODE 数据结构 算法 LEETCODE刷题笔记
题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2jrse/   示例 1: 输入:nums = [2,7,11,15], target = 9 输...

LeetCode·每日一题·795.区间子数组个数·脑筋急转弯

作者:小迅 链接:https://leetcode.cn/problems/number-of-subarrays-with-bounded-maximum/solutions/1988397/yi-ci-bian-li-zhu-shi-chao-ji-xiang-xi-b-upk7/来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 题目要求找出连续非空子串中最大值在 left - right 的个数 看到题目想到的就是使用单...

LeetCode刷题笔记:迭代与递归

发布时间:2022-11-07 算法 PYTHON LEETCODE刷题笔记
迭代         概念:迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。         示例:斐波那契数列:1、1、2、3、5、8、13、21、34 def fib(num): a, b, c = 1, 1, 0 if num <= 2: return 1 for i in range(num): a = b b = c c = a + b return c 递归         概念:指在函数的定义中使...

LeetCode·每日一题·809.情感丰富的文字·双指针

发布时间:2022-11-25 LEETCODE 算法 深度优先 LEETCODE刷题笔记
作者:小迅 链接:https://leetcode.cn/problems/expressive-words/solutions/1989983/shuang-zhi-zhen-mo-ni-zhu-shi-chao-ji-xi-zo6z/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  题目   示例   思路 对于任意一个字符串 word 能否夸张为 s 需要满足以下条件: 相同字符的相对位置一样,相对顺序一样,即 word[i] = s[j],比...