自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 收藏
  • 关注

原创 有效的括号(java)

解析:对字符串从左到右进行遍历,创建一个先进后出的栈用来存储校验数据。当遍历到左括号时,在栈中存入对应的右括号。当遍历到有右号时,和栈顶弹出的右括号进行对比是否一致,一致则继续判断,不一致则返回false,如果最后字符串遍历完毕,栈内元素全部弹出,则代表字符串有效,反之无效。,判断字符串是否有效。

2023-07-05 21:46:42 711

原创 三数之和(java)

解析:将数组从小到大排序,使用三个标记量和两层遍历实现全部组合。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。,判断是否存在三元组。

2023-07-04 18:22:58 520

原创 两数相加(java)

解析:创建一个链表进行存储,同时遍历两个链表读取数据进行相加,并记录进位数放到下一次计算里面,最后对对高位是否需要创建新的节点做判断即可。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。

2023-07-03 20:33:08 772

原创 无重复字符的最长子串(C++)

请你找出其中不含有重复字符的。因为无重复字符的最长子串是。

2023-07-03 18:36:38 1104

原创 两数之和(C++)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。链接:https://leetcode.cn/problems/two-sum。来源:力扣(LeetCode)用双循环嵌套,暴力求解即可。你可以按任意顺序返回答案。

2023-05-04 11:27:40 87 1

原创 七进制数Java解法

先判断正负,对7求余,存储余数,然后整除判断下一位即可。,并以字符串形式输出。

2023-02-25 14:50:46 302

原创 二叉搜索树中的众数Python解法

解析:由题可知,左子树必须小于等于根节点,右子树必须大于等于根节点,如果为众数,必然为相邻节点,若根节点和左儿子相同,那么左儿子的右儿子只能和根节点相同。同理,若根节点和右儿子相同,那么右儿子的左儿子只能和根节点相同。链接:https://leetcode.cn/problems/find-mode-in-binary-search-tree。给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。来源:力扣(LeetCode)

2023-02-25 14:33:20 141

原创 二叉搜索树中的众数Java解法

解析:由题可知,左子树必须小于等于根节点,右子树必须大于等于根节点,如果为众数,必然为相邻节点,若根节点和左儿子相同,那么左儿子的右儿子只能和根节点相同。同理,若根节点和右儿子相同,那么右儿子的左儿子只能和根节点相同。链接:https://leetcode.cn/problems/find-mode-in-binary-search-tree。给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。来源:力扣(LeetCode)

2023-02-25 14:04:41 121

原创 根据字符出现频率排序Python解法

链接:https://leetcode.cn/problems/sort-characters-by-frequency。给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序。一个字符出现的 频率 是它出现在字符串中的次数。对字符串进行遍历,对每个字符出现的次数进行记录,然后按照次数进行降序排列,最后对排序过的字符串遍历输出即可。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。解释: 'e'出现两次,'r'和't'都只出现一次。来源:力扣(LeetCode)

2023-02-17 12:18:54 887

原创 根据字符出现频率排序Java解法

链接:https://leetcode.cn/problems/sort-characters-by-frequency。给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序。一个字符出现的 频率 是它出现在字符串中的次数。对字符串进行遍历,对每一个字符出现的次数进行记录。然后按照次数多少进行降序排序,然后按照降序进行输出即可。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。解释: 'e'出现两次,'r'和't'都只出现一次。来源:力扣(LeetCode)

2023-02-17 11:57:42 404

原创 汉明距离Java解法

链接:https://leetcode.cn/problems/hamming-distance。对比的是两个数二进制之间不同的位数,可以使用异或运算,不同的位置为1,然后计算1的个数即可。指的是这两个数字对应二进制位不同的位置的数目。上面的箭头指出了对应二进制位不同的位置。,计算并返回它们之间的汉明距离。输入:x = 1, y = 4。来源:力扣(LeetCode)

2023-02-17 11:19:32 491

原创 重复的子字符串Java解法

先进行遍历,先判断单个重复的情况。然后是多个字符重复,先对是否是子串的倍数进行筛选,然后以子串长度为滑动窗口进行向后比较即可。可由子串 "abc" 重复四次构成。(或子串 "abcabc" 重复两次构成。,检查是否可以通过由它的一个子串重复多次构成。给定一个非空的字符串。

2023-02-15 11:11:52 480

原创 两个数组的交集Python解法

对两个数组进行去重,然后进行升序排列,从小到大依次进行比较,相同得值放入结果数组,两个数组指针有一个到顶了就退出循环比较。最后返回结果数组即可。输出结果中的每个元素一定是。

2022-10-05 23:36:56 2546

原创 摆动序列Python解法

相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。输入:nums = [1,17,5,10,13,15,10,5,16,8]...

2022-08-25 23:26:55 469

原创 整数替换Python解法

这里偶数是肯定对半折的,奇数到底是加一还是减一,主要是看奇数操作后的值能否更多的对半折,所以可以使用回溯。找出对折占比对多,操作最少的那一条路线即可。链接:https://leetcode.cn/problems/integer-replacement。如果 n 是奇数,则可以用 n + 1或n - 1替换 n。如果 n 是偶数,则用 n / 2替换 n。返回 n 变为 1 所需的 最小替换次数。来源:力扣(LeetCode)

2022-08-23 23:28:20 517

原创 整数拆分Python解法

很明显可以用动态规划,n=2时的值是知道的(2=1+1,1×1=1)。),并使这些整数的乘积最大化。你可以获得的最大乘积。

2022-07-21 12:58:59 3101

原创 最大单词长度乘积Python解法

如果不存在这样的两个单词,返回0。将有相同字符的字符串放在同一个key值下,将字符串数组中的字符一一遍历,每一个key值里的进行去重,当前字符串长度乘以剩下的字符串长度,取最大的值即可。链接https//leetcode.cn/problems/maximum-product-of-word-lengths。输入words=["abcw","baz","foo","bar","xtfn","abcdef"]解释这两个单词为"abcw","xtfn"。来源力扣(LeetCode).........

2022-07-20 02:34:27 1664

原创 最小高度树Python解法

给定数字n和一个有n-1条无向边的edges列表(每一个边都是一对标签),其中edges[i]=[ai,bi]表示树中节点ai和bi之间存在一条无向边。我们可以随机选取一个节点,以他为根节点,然后通过广度优先搜索找寻最长路径的叶子节点,再将这个节点作为根节点,然后进行广度优先搜索找寻深度最大的叶子节点,这两个节点之间的路径即为最长路径。当选择节点x作为根节点时,设结果树的高度为h。解释如图所示,当根是标签为1的节点时,树的高度是1,这是唯一的最小高度树。...

2022-07-19 01:02:06 206

原创 打家劫舍 III Python解法

除了root之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。使用后序遍历,从底部开始,因为相邻层不能同时“偷”,所以相邻层进行比较,从下往上,将最大值向上传递,类似DP数组。子树的最大值附加到当前节点的值上进行后序判断。链接https//leetcode.cn/problems/house-robber-iii。返回在不触动警报的情况下,小偷能够盗取的最高金额。小偷又发现了一个新的可行窃的地区。...

2022-07-18 15:54:25 401

原创 验证二叉树的前序序列化Python解法

所以可以设置一个值初始为1,每增加一个非叶子结点就+1,而每出现一个叶子节点(#)就减一,如果符合前序遍历的规则,那么在遍历完之前不会为0,因为非叶子节点一定多余叶子节点(#)。而遍历完后一定为0,因为叶子节点(#)只多一个。链接https//leetcode.cn/problems/verify-preorder-serialization-of-a-binary-tree。例如,上面的二叉树可以被序列化为字符串"9,3,4,#,#,1,#,#,2,#,6,#,#",其中#代表一个空节点。...

2022-07-15 18:03:42 336

原创 奇偶链表Python解法

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/odd-even-linked-list 例: 输入: head = [2,1,3,5,6

2022-07-15 17:51:18 369

原创 摆动排序 II Python解法

给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。你可以假设所有输入数组都可以得到满足题目要求的结果。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/wiggle-sort-ii 例:输入:nums = [1,5,1,1,6,4]输出:[1,6,1,5,1,4]解释:[1,4,1,5,1,6] 同样是符合题目要求的结果,可以被判题程序接受。解析:中间的数比两边的数大,那么

2022-07-13 12:32:03 387

原创 去除重复字母Python解法

给你一个字符串 ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。例:输入:输出:

2022-06-28 16:52:02 3239

原创 反转字符串中的元音字母Python解法

给你一个字符串 ,仅反转字符串中的所有元音字母,并返回结果字符串。元音字母包括 、、、、,且可能以大小写两种形式出现。例:输入:s = "hello"输出:"holle"解析:字符串中只有元音字母受到条件约束,所以我们只需要将元音字母进行存储,然后将字符串的元音字母进行反向替换即可,满足先进后出这个条件的首先想到的就是栈了。...

2022-06-24 19:38:15 993

原创 最佳买卖股票时机含冷冻期Python解法

给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown

2022-06-01 18:48:14 1418 1

原创 累加数Python解法

累加数 是一个字符串,组成它的数字可以形成累加序列。一个有效的 累加序列 必须 至少 包含 3 个数。除了最开始的两个数以外,序列中的每个后续数字必须是它之前两个数字之和。给你一个只包含数字 '0'-'9' 的字符串,编写一个算法来判断给定输入是否是 累加数 。如果是,返回 true ;否则,返回 false 。说明:累加序列里的数,除数字 0 之外,不会 以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。例:输入:"112358"输出:true解释..

2022-05-30 15:53:51 2066

原创 完美数Python解法

对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。给定一个 整数 n, 如果是完美数,返回 true;否则返回 false。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/perfect-number例:输入:num = 28输出:true解释:28 = 1 + 2 + 4 + 7 + 141, 2, 4, 7, 和 14 是 28 的所有正因子。解析:使用枚举法,我们可以一个值一个值.

2022-05-27 16:14:27 1968

原创 各位相加Python解法

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。例:输入: num = 38输出: 2解释: 各位相加的过程为:38 --> 3 + 8 --> 1111 --> 1 + 1 --> 2由于2 是一位数,所以返回 2。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/add-digits解析:题目的意思很明确,将十进制数的各个位置的数字相加,若得到的值超过9,则继续...

2022-05-24 20:51:37 2839

原创 猜数字大小Python解法

猜数字游戏的规则如下:每轮游戏,我都会从1到n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1或 0):-1:我选出的数字比你猜的数字小 pick < num1:我选出的数字比你猜的数字大 pick > num0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick == nu...

2022-05-23 19:42:11 243

原创 找不同Python解法

给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。例:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。解析:因为t只是在s的基础上多出了一个字符,所以可以先将字符串转换成列表,然后对列表进行排序,再对两个列表中的字符进行一一比对,当匹配不上时返回结果即可。class Solution(object): def findTh

2022-05-20 11:19:27 1231

原创 判断子序列Python解法

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/is-subsequence例:输入:s = "abc", t = "ahbgdc"输出:true解析:将原字符串的字符一一与需要判断的字符串的字符进行比对即可.

2022-05-19 21:13:05 999

原创 消除游戏Python解法

列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序。请你对 arr 应用下述算法:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。给你整数 n ,返回 arr 最后剩下的数字。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/elimination-g

2022-05-19 20:58:22 522

原创 图片平滑器Python解法

图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。给你一个表示图像灰度的m x n整数矩阵img,返回对图像的每个单元格平滑处理后的图像。来源...

2022-05-18 10:24:33 217

原创 分发饼干Python解法

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/assign-cookies例:

2022-05-16 20:55:34 688

原创 统计各位数字都不同的数字个数Python解法

给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。例:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字解析:类似于排列组合,例如高位数头部不能为0,所以最高位有9种选择(1-9),而下一位可以为0,所以是9-1+1还是9种选择,再下一位就是8种,以此类推。当然,我们还可以选择低位数,所以我们可以从一位数开始求解,在高位数时

2022-05-12 15:00:19 1493

原创 丑数 IIPython解法

给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。例:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。解析:使用三个指针,一个用来乘以2,一个用来乘以3,一个用来乘以5。class Solution(object): def nthUglyNumber(self, n): """ :type n:

2022-05-06 11:41:40 193

原创 丑数Python解法

丑数 就是只包含质因数 2、3 和 5 的正整数。给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。例:输入:n = 6输出:true解释:6 = 2 × 3解析:不停的对2,3,5相除然后判断结果即可。class Solution(object): def isUgly(self, n): """ :type n: int :rtype: bool "

2022-05-06 11:14:06 1417

原创 二叉树的所有路径Python解法

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。例:输入:root = [1,2,3,null,5]输出:["1->2->5","1->3"]解析:深度遍历,到叶子节点返回,然后一层一层的将节点值加在前面即可。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, va

2022-04-27 11:22:44 1948 1

原创 单词规律Python解法

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/word-pattern例:输入: pattern = "abba", str = "dog cat cat dog"输出: true解析:不要从单个字符判断,而是从规.

2022-04-27 10:35:35 1212

原创 生命游戏Python解法

根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即为 活细胞 (live),或 0 即为 死细胞 (dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;如果活细胞周围八

2022-04-27 10:05:37 1090

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除