自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode315题:计算右侧小于当前元素的个数

本问题对于一个整数数组nums,返回一个新数组counts,其中counts[i]的值是整数数组nums中nums[i]元素右侧小于nums[i]的数量,所以不管怎样,肯定需要这个一个功能,即告诉数组nums和给定的一个索引号i,能够统计出nums[i]右侧应该有多少个小于nums[i]的元素数量,为此设计的函数lesscount(nums,i)能够满足要求。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。输出:[2,1,1,0]

2024-06-11 15:58:09 216

原创 用枚举算法解决Leetcode第318题最大单词长度乘积问题

1、求两个单词长度的乘积,如果两个单词分别为word1和word2,则长度的乘积k=len(word1)*len(word2)输入:words = ["abcw","baz","foo","bar","xtfn","abcdef"]输入:words = ["a","ab","abc","d","cd","bcd","abcd"]输入:words = ["a","aa","aaa","aaaa"]解释:这两个单词为 "abcw", "xtfn"。解释:这两个单词为 "ab", "cd"。

2024-05-28 15:10:43 487

原创 Leetcode第299题:一个有趣的猜数字游戏

在secret和guess中,不管是公牛bulls还是母牛cows,必然是secret和guess中都有的数字,所以我们要找出在secret和guess中有哪些公共数字,且统计出这些公共数字出现的次数,为此设计了tjshare(s1,s2)和tjnum(s1,s2)函数,tjshare(s1,s2)函数统计在s1和s2中有哪些公共数字,返回一个包含公共数字的列表,tjnum(s1,s2)统计s1和s2中公共数字出现的次数,返回两个字典。注意,两个不匹配的 1 中,只有一个会算作奶牛(数字猜对位置不对)。

2024-05-22 15:55:00 400

原创 利用flag信号解决LeetCode题库第394题字符串解码问题

子字符串列表: ['ab', '2[b]', '2[c]', 'ab', '2[b]', '2[c]', 'ab', '2[b]', '2[c]', 'ab', '2[b]', '2[c]', 'ab', '2[b]', '2[c]', 'ab', '2[b]', '2[c]']子字符串列表: ['ab', '2[c]', '3[bc]', 'acab', '2[c]', '3[bc]', 'acab', '2[c]', '3[bc]', 'ac']注意 k 保证为正整数。你可以认为输入字符串总是有效的;

2024-03-26 10:08:38 953

原创 求解LeetCode题库第2789题 合并后数组中的最大元素

问题并不复杂,试过之后,才知道在寻找“同时满足 0 <= i < nums.length - 1 和 nums[i] <= nums[i + 1] ”的整数 i 时,如果从nums的左边向右寻找时,就会漏掉一部分处理元素,使得最后从nums中得不到的真正的最大整数,无法完成问题的求解,正确的做法是从nums的右端向左端开始寻找。将元素 nums[i + 1] 替换为 nums[i] + nums[i + 1] ,并从数组中删除元素 nums[i]。输入:nums = [2,3,7,9,3]

2024-03-11 12:56:43 303 1

原创 理清关系简化LeetCode题库第3047题求交集区域内的最大正方形面积问题求解

解释:边长为 1 的正方形可以放入矩形 0 和矩形 1,矩形 1 和矩形 2,或所有三个矩形的交集区域。输入:bottomLeft = [[1,1],[2,2],[3,1]], topRight = [[3,3],[4,4],[6,6]]输入:bottomLeft = [[1,1],[2,2],[1,2]], topRight = [[3,3],[4,4],[3,4]]输入:bottomLeft = [[1,1],[3,3],[3,1]], topRight = [[2,2],[4,4],[4,2]]

2024-03-09 13:53:17 615

原创 解决LeetCode题库第3044题出现频率最高的质数问题

从单元格 (1,1) 出发,所有可能方向上生成的大于 10 的数字有: [65,66,68,62,64,69,67,68]。从单元格 (0,1) 出发,所有可能方向上生成的大于 10 的数字有: [78,75,76,768,74,79]。从单元格 (1,0) 出发,所有可能方向上生成的大于 10 的数字有: [46,465,48,42,49,47]。从单元格 (2,1) 出发,所有可能方向上生成的大于 10 的数字有: [86,82,84,86,867,85]。解释:唯一可以生成的数字是 7。

2024-02-26 14:13:36 886 1

原创 利用列表数据去重的原理解决LeetCode题库第391题完美矩形问题

后来我又想到一个方法,那就是既然给定的一系列矩形能够拼接成一个完美矩形,那么这些矩形的面积和一定等完美矩形的面积,如果相等就可以判定能够组成完美矩形,如果不相等,那就不能组成完美矩形。最后判断能不能构成完美矩形,只需要比较给定的一系列矩形组成的最大矩形区域面积,所有矩形面积和与去重之后的面积三者是否相等即可,如果三者相等,则能够构成完美矩形,否则不能构成完美矩形。输入:rectangles = [[1,1,3,3],[3,1,4,2],[3,2,4,4],[1,3,2,4],[2,3,3,4]]

2024-02-06 16:33:10 580 1

原创 通过共同特征建立联系解决LeetCode题库第49题字母异位词分组问题

字母异位词,具有相同的字母,但位置不同,说它们具有相同的特征,好象有,因为具有相同的字母,但又不便于从程序上直接统计,因为字母的位置毕竟不相同,程序只能统计完全相同的内容,为此要进行转化,将它们转化为便于统计的形式。为此将每个单词拆分成字母,并排序,这样异位词就有了相同的形式,具有共同的特征。输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

2024-02-02 10:36:34 319

原创 用枚举算法解决LeetCode题库第2719题统计整数数目问题

时间周而复始,一天一天,一个星期又一个星期,一年又一年,无不体现循环之美妙之神奇,循环也揭示我们人生的道理,成功往往需要苦苦的枯燥的反复,艰难地等待,但量变会引起质变,“复杂的事情简单做,你就是专家。输入:num1 = "1", num2 = "12", min_num = 1, max_num = 8。输入:num1 = "1", num2 = "5", min_num = 1, max_num = 5。是 1,2,3,4,5,6,7,8,10,11 和 12。请你返回好整数的数目。

2024-01-25 16:07:40 458 1

原创 利用枚举算法解决LeetCode题库第282题给表达式添加运算符问题

本问题解决的关键是找到num各个数字之间要插入的运算符共有多少种排列组合,然后利用枚举法列举出num各个数字和运算符组成的表达式,检验该表达式运算结果是否等于target,如果等于,则是一种符合条件的表达式,否则继续列举,直到所有的组合列举完成。解释: “1*2*3” 和 “1+2+3” 的值都是6。解释: “2*3+2” 和 “2+3*2” 的值都是8。输入: num = "123", target = 6。输出: ["1+2+3", "1*2*3"]输出: ["2*3+2", "2+3*2"]

2024-01-22 12:44:43 490

原创 用“分而治之”的策略解决LeetCode题库第65题有效数字问题

为处理方便,字符串中的“e”或“E”或其它字母统一转换成小写字母,另外将各种功能设计成函数,这样让整个处理的逻辑更加清晰。5、函数jc(s),检查s是否是一个真正的有效数字,如果是则返回True,否则返回False。至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字。2、(可选)一个 'e' 或 'E' ,后面跟着一个 整数。(2)是否有连续的两个符号字符(+-、-+、--、++)(可选)一个符号字符('+' 或 '-')(可选)一个符号字符('+' 或 '-')

2024-01-16 11:19:20 511 1

原创 两种方法解决LeetCode题库第32题最长有效括号问题

(2)如果a的长度不为0,则统计索引号连续出现的次数,这个连续不是指索引号以0、1、2、3......这样的形式出现,而是以类似0、2、4、6、......或1、3、5、7、......这样的形式出现,因为“()”是一个整体,占用两个位置,找出这些出现次数的最大值。从本题的解决可以看出,有完善的编程逻辑控制,有优秀的数据结构支持,可以编出解决问题的程序,但如果有更加巧妙的算法,则事半功倍。解释:最长有效括号子串是 "()()"解释:最长有效括号子串是 "()"输入:s = ")()())"

2024-01-09 16:38:14 478

原创 利用全排列解决LeetCode题库第60题排列序列问题

给出集合 [1,2,3,...,n],其所有元素共有 n!算法简单,全排列的生成又一次成为解决问题的关键。给定 n 和 k,返回第 k 个排列。感悟:战胜困难,前面必定一马平川!输入:n = 3, k = 3。输入:n = 4, k = 9。输入:n = 3, k = 1。其中第3个排列为12435。其中第5个排列为1423。其中第3个排列为213。

2024-01-05 10:45:07 1090 1

原创 利用全排列解决LeetCode题库第30题串联所有单词子串问题

例如,如果 words = ["ab","cd","ef"], 那么 "abcdef", "abefcd","cdabef", "cdefab","efabcd", 和 "efcdab" 都是串联子串。输入:s = "wordgoodgoodgoodbestword", words = ["word","good","best","word"]输入:s = "barfoofoobarthefoobarman", words = ["bar","foo","the"]子串 "foobar" 开始位置是 9。

2024-01-03 20:19:42 460 1

原创 用化归的思维方法解决LeetCode题库第44题通配符匹配问题

给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 '?判定匹配成功的充要条件是:字符模式必须能够 完全匹配 输入字符串(而不是部分匹配)。' 可以匹配 'c', 但第二个 'a' 无法匹配 'b'。'*' 可以匹配任意字符序列(包括空字符序列)。解释:"a" 无法匹配 "aa" 整个字符串。' 或 '*' 组成。输入:s = "cb", p = "?输入:s = "aa", p = "a"输入:s = "aa", p = "*"解释:'*' 可以匹配任意字符串。

2024-01-01 15:40:02 435

原创 利用递归解决LeetCode题库第87题扰乱字符串这个怪题

"g/r / e/at" --> "r/g / e/at" // 随机决定:第一组「交换两个子字符串」,第二组「保持这两个子字符串的顺序不变」"gr/eat" --> "g/r / e/at" // 在子字符串上递归执行此算法。两个子字符串分别在随机下标处进行一轮分割。"r/g / e/at" --> "r/g / e/ a/t" // 继续递归执行此算法,将 "at" 分割得到 "a/t""r/g / e/ a/t" --> "r/g / e/ a/t" // 随机决定:「保持这两个子字符串的顺序不变」

2023-12-27 08:47:04 910 1

原创 简洁明了的求解LeetCode题库第41题---缺失的第一个正数

感悟:算法学习和程序设计让我们的逻辑思维更加清晰、严密,能够直指问题的本质,因而对结果也有更加准确的把握。给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。解决思路在程序的注释中有明确说明,应该够清楚的了。输入:nums = [7,8,9,11,12]输入:nums = [3,4,-1,1]输入:nums = [1,2,0]41. 缺失的第一个正数。

2023-12-19 10:31:08 356 1

原创 力扣题库第84题“柱状图中最大的矩形”的分析与解决

我的解决思路是这样的,若heights列表的长度为n=len(heights),那么在柱状图中,勾勒出面积矩形区间的宽度h应该是在1---n范围内,遍历高度列表heights按宽度切割成的不同区间,依次求出可以勾勒出来的矩形面积,保存其中的最大值即可。注意:在切割区间的时候,因为区间有一定的宽度,不要让索引值超过heights列表的索引范围,所以每一宽度的最后一个切割区间,其起始位置是不断向前移动的。输入:heights = [2,1,5,6,2,3]最大面积的起始位置为2,结束位置为3,对应的高度为5。

2023-12-13 15:02:13 43

原创 力扣题库231题“2的幂”问题的非常规思考及解决

解决问题一般我们是按照常规的思路去进行,常规思路是大众化的解决方案,有时会有使蛮力的感觉,费力不讨好,但这种常规思维可以让人炼出扎实的基本功,而非常规思路解决问题会让人有投机取巧的感觉,但往往事半功倍,因而具有很明显的优势,给问题的解决带来极大的方便。我们知道:一个整数如果是2的幂,则这个整数除以2,余数为零,将商继续除以2,余数还是为零,再将商除以2,如此反复处理,最后肯定是商1余数为0。可以看出:一个整数如果是2的幂,其二进制形式只包含一个1,其它都是0,根据这样一个特点,我们的程序就很好设计了。

2023-12-12 15:19:11 28

原创 LeetCode热题100中的239题“滑动窗口最大值”是不是真的很困难?

这个题是LeetCode热题100中的第239题,难度为困难,有点奇怪,这个题感觉并没有什么难度,既不需要建立复杂的模型,在程序编写上也是平铺直叙,并不需要转弯磨角,但居然难度就标为困难,有点想不明白,如果把滑动窗口改为一个平面的窗口,或许难度要增加一点,不知道大家是怎么认为的?给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。输出:[3,3,5,5,6,7]返回 滑动窗口中的最大值。

2023-12-08 14:05:02 34

原创 利用字典和递归解决LeetCode题库第38题---外观数列问题

具体是:对第一个字符按顺序统计其连续出现的次数,将这个字符和出现次数组成一个键值对存于a列表中,对第二个出现的不同字符进行相同的处理,后续字符类似处理,最后再根据a列表中的键值对生成对整个字符串l的描述并返回。这有点象个绕口令的数字游戏,很有趣。对其中一个字符串如何进行描述,是解决这个问题的关键,我把它做成了一个函数fz(),为什么取这么一个函数名,事后自己也回想不起来了,反正简单。countAndSay(4) = 读 "21" = 一 个 2 + 一 个 1 = "12" + "11" = "1211"

2023-12-07 13:09:29 37 1

原创 力扣面试经典第135题“分发糖果”的分析及解决

先处理评分低的,因为处理过后其获得的糖数就不会变了,再依次处理评分高的。n 个孩子站成一排。1、单独设置一个与每位小朋友评分对应的获得糖果数目的列表,并设初始值为1。#列表a中数据是每一个小朋友获得的糖数,因为至少都有1个,所以初始值都为1。解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。#按c中索引号的顺序,依次对ratings和获得糖数的列表a进行处理。每位水朋友获得的糖数: [1, 2, 1, 2, 3, 4]每位水朋友获得的糖数: [2, 1, 2, 1, 2]

2023-12-05 16:11:20 129

原创 利用类似间址寻址的原理解决LeetCode热题第76题最小覆盖子串

因为s1串和a列表具有对应关系,所以知道s1中字符的索引号就可以查到a中数据的对应索引号,而a中数据本身是一个索引号,这样就可以查到其在原s串中的位置从而取出对应字符。解释:最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。含t中字符的索引号列表: [0, 3, 5, 9, 10, 12]print('按顺序从s中取出t中字符组成的字符串:',s1)解释: t 中两个字符 'a' 均应包含在 s 的子串中,'''在s1字符串中找到各种含有t中字符的所有子串,

2023-12-04 11:25:30 25 1

原创 利用递归方法求解LeetCode热题100第39题------组合总和

我用了几天才完成这个题,写一会程序,调试一会,再写再调试,不断修改,不如意处就另辟蹊径,重头再来,最后的结果让人很欣慰,完全通过测试。check1函数用于处理多个数字经过加法运算是否可以得到target,返回得到列表或空列表,这个函数使用了递归算法,先处理1个数2个数的情况,然后再处理多个数的情况,多个数可以化为少一个数的情况。输入: candidates = [2,3,5], target = 8输出: [[2,2,2,2],[2,3,3],[3,5]]#清除s中重复的多余项,结果存于b中。

2023-11-29 20:06:46 64 1

原创 接雨水问题独特解法

本解法采用对柱子按高度进行分层处理的方法,巧妙地设计出层处理模式,即以最低的柱子高度作高,以柱子所在的范围作宽度,形成一个长方形作为一层,用层面积(长方形面积)减去柱子占用面积,即可计算出每层接的雨水量,然后循环处理每层,完成总雨水量的计算,方法简便、容易理解,不涉及复杂的算法知识概念。

2023-11-23 16:47:13 101 1

空空如也

空空如也

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

TA关注的人

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