leetcode刷题笔记
刷题leetcode记录
灬繁花落雨灬
这个作者很懒,什么都没留下…
展开
-
leetcode, 204题【计数质数】
leetcode, 204题【计数质数】题目描述测试用例算法题目描述给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。测试用例示例1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例2:输入:n = 0输出:0示例3:输入:n = 1输出:0算法算法思路:厄拉多塞筛法。比如说求20以内质数的个数,首先0,1不是质数.2是第一个质数,然后把20以内所有2的倍数划去.2后面紧跟的数即为下一个质数3,然后把3原创 2022-02-22 00:00:00 · 296 阅读 · 0 评论 -
leetcode,75题【颜色分类】
颜色分类题目描述测试用例算法题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-colors测试用例示例1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例2:输入:nums = [2,原创 2021-12-08 21:33:03 · 62 阅读 · 0 评论 -
leetcode,50题【Pow(x,n)】
计算幂问题描述测试用例算法问题描述实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x^n)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/powx-n测试用例示例1:输入:x = 2.00000, n = 10输出:1024.00000示例2:输入:x = 2.10000, n = 3输出:9.26100示例3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22原创 2021-11-30 22:23:58 · 74 阅读 · 0 评论 -
回溯、贪心、动态规划、递归的解题思路
回溯、贪心、动态规划的解题思路1. 回溯算法2. 贪心算法3. 动态规划1. 回溯算法回溯函数模范返回值以及参数void backtracking(参数)回溯函数的终止条件if(终止条件){ 存放结果; return;}回溯搜索的遍历for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)){ 处理节点; backtracking(路径,选择列表); 回溯,撤销处理结果;}回溯算法模板框架:void backtracking(参数) { if原创 2021-11-29 16:37:23 · 280 阅读 · 0 评论 -
leetcode, 39题【组合总和】
组合总和问题描述测试用例算法问题描述给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。 对于给定的输入,保证和为 target 的唯一组合数少于 150 个。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/combinat原创 2021-11-24 23:14:46 · 86 阅读 · 0 评论 -
leetcode,33题【搜索旋转排序数组】
搜索旋转排序数组问题描述测试用例算法问题描述整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,原创 2021-11-20 23:00:39 · 89 阅读 · 0 评论 -
leetcode,914题【卡牌分组】
卡牌分组问题描述测试用例算法问题描述给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/x-of-a-kind-in-a-deck-of-cards测试用例示例1:输入:[1,2,3,4,4,3,2,1]输出:t原创 2021-11-11 23:30:00 · 140 阅读 · 0 评论 -
leetcode,29【两数相除】
两数相除问题描述测试用例算法问题描述给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/divide-two-i原创 2021-11-11 23:30:00 · 95 阅读 · 0 评论 -
leetcode,17题【电话号码的字母组合】
电话号码的字母组合问题描述测试用例算法问题描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number测试用例示例1:输入:digits = "23"输出:["ad","ae","af","bd","be原创 2021-11-10 23:30:00 · 53 阅读 · 0 评论 -
2021-11-09
整数转罗马数字问题描述测试用例算法问题描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVI原创 2021-11-10 23:30:00 · 136 阅读 · 0 评论 -
leetcode,6题【Z字形变换】
Z字形变换问题描述测试用例算法问题描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zig原创 2021-11-10 23:30:00 · 180 阅读 · 0 评论 -
leetcode,892题【三维形体的表面积】
三维形体的表面积问题描述测试用例算法问题描述给你一个 n * n 的网格 grid ,上面放置着一些 1 x 1 x 1 的正方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。放置好正方体后,任何直接相邻的正方体都会互相粘在一起,形成一些不规则的三维形体。请你返回最终这些形体的总表面积。注意:每个形体的底面也需要计入表面积中。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/surf原创 2021-11-09 23:30:00 · 134 阅读 · 0 评论 -
leecode, 5题,【最长回文子串】
最长回文子串问题描述测试用例算法问题描述给你一个字符串 s,找到 s 中最长的回文子串。测试用例示例1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例2:输入:s = "cbbd"输出:"bb"示例5:输入:s = "a"输出:"a"示例4:输入:s = "ac"输出:"a"算法class Solution { public String longestPalindrome(String s) {原创 2021-11-09 23:30:00 · 51 阅读 · 0 评论 -
leetcode,3题【无重复字符的最长子串】
无重复字符的最长子串问题描述测试用例算法1.用hashtable2.巧妙的解法问题描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters测试用例示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2:原创 2021-11-08 23:30:00 · 47 阅读 · 0 评论 -
leetcode,821题【字符的最短距离】
字符的最短距离问题描述测试用例算法问题描述给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shortest原创 2021-11-06 16:42:57 · 160 阅读 · 0 评论 -
leetcode,796【旋转字符串】
旋转字符串问题描述测试用例算法问题描述给定两个字符串, A 和 B。A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,A 能变成B,那么返回True。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-string测试用例示例 1:输入: A = 'abcde', B = 'cdeab'输出: true示例 2:原创 2021-11-05 22:56:07 · 4524 阅读 · 0 评论 -
leetcode,746题【使用最小花费爬楼梯】
使用最小花费爬楼梯问题描述测试用例算法问题描述数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/min-cost-climbing-原创 2021-11-05 15:18:16 · 81 阅读 · 0 评论 -
leetcode,696题【计数二进制子串】
计数二进制子串问题描述测试用例算法问题描述给定一个字符串 s,计算具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是连续的。重复出现的子串要计算它们出现的次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-binary-substrings测试用例示例1:输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“110原创 2021-11-04 23:30:00 · 88 阅读 · 0 评论 -
leetcode,690题【员工的重要性】
员工的重要性问题描述测试用例算法问题描述给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id 。比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]] ,员工 2的 数据结构是 [2, 10, [3]] ,员工 3 的数据结构是 [3, 5, []] 。注意虽然员工 3 也是员工 1 的一个下属,但是由于 并不是直系 下属,因此没有体现在员工 1原创 2021-11-04 23:30:00 · 90 阅读 · 0 评论 -
leetcode,680题【验证回文字符串Ⅱ】
验证回文字符串Ⅱ问题描述测试用例算法问题描述给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。测试用例示例 1:输入: s = "aba"输出: true示例 2:输入: s = "abca"输出: true解释: 你可以删除c字符。示例 3:输入: s = "abc"输出: false算法//例子:"abdda"class Solution { public boolean validPalindrome(String s) {原创 2021-11-04 23:30:00 · 70 阅读 · 0 评论 -
leetcode,606题【根据二叉树创建字符串】
根据二叉树创建字符串问题描述测试用例算法问题描述你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-string-from-binary-tree测试用例示例 1:输入: 二叉树: [1,2,3,4] 1 /原创 2021-11-03 23:30:00 · 65 阅读 · 0 评论 -
leetcode,605题【种花问题】
种花问题问题描述测试用例算法问题描述假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/can-plac原创 2021-11-02 20:44:25 · 97 阅读 · 0 评论 -
leetcode,572题【另一颗树的子树】
另一棵树的子树问题描述测试用例算法问题描述给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subtree-of-another-tree测试用例示原创 2021-11-02 23:30:00 · 65 阅读 · 0 评论 -
leetcode,563题【二叉树的坡度】
二叉树的坡度问题描述测试用例算法问题描述给定一个二叉树,计算 整个树 的坡度 。一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。整个树 的坡度就是其所有节点的坡度之和。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-tilt测试用例示例 1:输入:root = [1,2,3]原创 2021-11-01 22:35:27 · 133 阅读 · 0 评论 -
leetcode,543题【二叉树的直径】
二叉树的直径题目描述测试用例算法题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/diameter-of-binary-tree测试用例示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回原创 2021-11-01 22:28:27 · 74 阅读 · 0 评论 -
leetcode,501题【二叉搜索树中的众数】
二叉搜索树中的众数问题描述测试用例算法问题描述给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:1. 结点左子树中所含结点的值小于等于当前结点的值2. 结点右子树中所含结点的值大于等于当前结点的值3. 左子树和右子树都是二叉搜索树来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree测试用例例如:给定 BST原创 2021-11-01 23:30:00 · 122 阅读 · 0 评论 -
leetcode,496题【下一个更大元素】
下一个更大元素问题描述测试用例算法问题描述给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/next-greater-element原创 2021-11-01 23:30:00 · 63 阅读 · 0 评论 -
leetcode, 476题【数字的补数】
数字的补数问题描述测试用例算法问题描述对整数的二进制表示取反(0 变 1 ,1 变 0)后,再转换为十进制表示,可以得到这个整数的补数。 例如,整数 5 的二进制表示是 "101" ,取反后得到 "010" ,再转回十进制表示得到补数 2 。给你一个整数 num ,输出它的补数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-complement测试用例示例 1:输入:num = 5输出:2解释:5 的二进制表示为原创 2021-10-31 23:30:00 · 150 阅读 · 0 评论 -
leetcode,459题【重复的子字符串】
重复的子字符串问题描述测试用例算法问题描述给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/repeated-substring-pattern测试用例示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入原创 2021-10-31 23:30:00 · 62 阅读 · 0 评论 -
leetcode, 338题【比特位计数】
比特位计数题目描述测试用例算法1.利用位运算【leetcode评论区】2.大佬的神思想【leetcode评论区】题目描述给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/counting-bits测试用例示例 1:输入:n = 2输出:[0,1,1]解释:0 -->原创 2021-10-30 23:00:00 · 161 阅读 · 0 评论 -
leetcode, 448题【找到所有数组中消失的数字】
找到所有数组中消失的数字问题描述测试用例算法1.利用数组下标问题描述给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array测试用例示例 1:输入:nums = [4,3,2,7,8,2原创 2021-10-30 23:00:00 · 87 阅读 · 0 评论 -
leetcode,415【字符串相加】
字符串相加问题描述测试用例算法问题描述给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-strings测试用例示例 1:输入:num1 = "11", num2 = "123"输出:"134"示例 2:输入:num1 = "原创 2021-10-29 23:05:49 · 54 阅读 · 0 评论 -
leetcode,405【数字转换为十六进制数】
数字转换为十六进制数题目描述测试用例算法1. 利用进制的本质(位运算)题目描述给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:1.十六进制中所有字母(a-f)都必须是小写。2.十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其3.他情况,十六进制字符串中的第一个字符将不会是0字符。 4.给定的数确保在32位有符号整数范围内。5.不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。来源:力原创 2021-10-29 21:21:08 · 78 阅读 · 0 评论 -
leetcode, 389题【找不同】
找不同题目描述测试用例算法1. 利用位运算2.利用求和题目描述给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-the-difference测试用例示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s =原创 2021-10-27 23:02:20 · 64 阅读 · 0 评论 -
leetcode, 326题【3的幂】
3的幂题目描述测试用例算法1. 利用log【leetcode评论区】2. 利用循环【自己弱鸡解法】题目描述给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-of-three测试用例示例 1:输入:n = 27输出:true示例 2:输入:n =原创 2021-10-26 20:34:52 · 67 阅读 · 0 评论