算法
文章平均质量分 55
算法题练习,每天坚持,少则2-3题,多则不限
新生代农民工官方认证码农小拽
实践是检验知识的唯一标准!
展开
-
每日一算7:整数反转
整数反转题目分析解题提交题目分析这题有两种思路,第一种是平铺直叙的方式,按照题目意思直接分布写就好,大致是如下步骤:1 先检查x是否为0或者超出范围,如果是,则返回02 数字末尾为0的,先把0去掉3 用数组反转的方法,把数字反转过来4 把x的值先当作正数处理,在返回最终结果时,如果x为负值,就在结果中加上负号即可5 检查反转后的结果是否超出范围,如果是,则返回0第二种就有一定的技巧,对性能提升很大,难度也有点提升大致是这样的步骤:1 先检查x是否为0或者超出范围,如果是,则原创 2022-04-11 20:32:13 · 172 阅读 · 0 评论 -
每日一算6:Z 字形变换
Z 字形变换题目分析思路解题测试题目分析原有的单行字符串,比如'abcdefg',要求摆放成3行,刚开始是由上向下摆放,先处理第一个字符a,放到第一行,得到:a再处理第二个字符b,放到第二行,得到:ab再处理第三个字符c,放到第三行,得到:abc此时,三行已经摆放完毕,该折返了,即由下到上摆放。所以此时处理第四个字符d,就要放到第二行上,得到:ab dc 再继续处理第五个字符e,放到第一行上,得到:a eb dc此时,第一行处理完,又要折行了原创 2022-04-11 12:47:37 · 220 阅读 · 0 评论 -
2021.11.25 每天进步一点点: 力扣题库20
力扣题库20题目介绍思路解析(剥洋葱法)完整代码提交结果思路二(拼对法,也叫栈方法)栈方法提交结果说明题目介绍思路解析(剥洋葱法)本题用了两种方法解决。 当前介绍第一种: 剥洋葱法。1, 很明确的是, 左右括号要成对存在。 所以,s.length必须是偶数。 如果是奇数,必定是无效的。2,依据示例,我们很容易看出,必定有一种括号是紧挨着成对存在的。 比如() [] {}这种形式。所以,我们就把这些括号一层一层的剥离掉。 直到无法剥离位置。3,举个例子。 假定s = '{[()]}' 。原创 2021-11-25 21:49:39 · 252 阅读 · 0 评论 -
2021.11.20 每天进步一点点: 力扣算法题14
这里写目录标题题目介绍解题思路解题代码提交结果题目介绍解题思路当strs长度为1时,返回的是strs[0]自身。不管它本身是不是空字符串。在strs长度>1的时候, 以下来画图举例说明:解题代码/** * @param {string[]} strs * @return {string} */var longestCommonPrefix = function(strs) { if(strs.length === 1) { return strs原创 2021-11-20 00:40:58 · 3429 阅读 · 0 评论 -
2021.11.16 每天进步一点点:力扣算法题13
这里写目录标题题目介绍思路代码提交结果题目介绍思路举几个例子:给出的罗马数字输出的值I1II2III3VI6XII12MVI6就此可以看出,把罗马数字每个字符单独拆分开来,转换成对应数字,再相加,就是最终结果。但是,题目中给出了几种特殊情况:给出的罗马数字输出的值IV4IX9XL40XC90CD400CM900对特殊情况举几个例子:给出的罗马数原创 2021-11-16 18:04:29 · 511 阅读 · 0 评论 -
2021.11.14 每天进步一点点: 力扣算法题9
这里写目录标题题目介绍思路代码测试结果题目介绍思路这次不让把数字转换成字符串了, 所以要换个思路了。比较常用的方法就是 取模。首先要排除几种情况:x为0, 肯定是回文数字x超出阈值 或者为负 或者末尾为0的数字, 都不是回文数字。然后考虑正常的数字情况,假定x是123:x如果是回文,那么x反转之后的值,一定是等于x本身的。所以本题目标是反转数字x,然后进行比较。这次采取逐步剥离x的方法首先,用变量y获取到初始的x值,即123 , 然后设置反转后的数字为num对x做第一层剥离原创 2021-11-14 21:46:21 · 4217 阅读 · 0 评论 -
2021.11.13 每天进步一点点: 力扣算法题库7
这里写目录标题题目自己的核心思路介绍最终代码结语题目自己的核心思路介绍先做一步判断,如果数字超出最大值或小于最小值 或为0, 都直接返回0。利用数组反转的方法,对数字进行反转。具体做法 是,不管给出的数字是正还是负数,我们先假定给出的数字是正数,先num.toString()转成字符串,然后用Array.from()转成数组,再调用数组反转方法reverse(),再用join('')方法,转成字符串,最后用Number()方法,强制转换为数字类型。调用上述方法。同时对反转结果做个判断,如果反转结原创 2021-11-13 21:58:17 · 3895 阅读 · 0 评论 -
每日一算:2021.4.24
大家好,我是梅巴哥er。今天是写算法题的第三天。我目前水平有限,仅仅只是能做到把题目做出来的地步,代码难免有些冗长。所以,如果有人在看我的算法博文,请谨记,该回答仅作为参考。肯定还有更好更优秀的做法,可以去leetcode题库查看大佬们的回答。在此不做赘述。第5题:最长回文子串/** * 1,这道题和第三题有很大的相似度 * 2,理解题意,就是找到首元素和尾元素相同的子串,取最长的这样的子串 * 3,先准备一个空对象obj,用来存放所有回文子串 * 4,设定字符串的长度为lenth, * 5原创 2021-04-24 22:16:24 · 99 阅读 · 0 评论 -
每日一算:2021.4.23
大家好,我是梅巴哥er。今天继续算法的练习。第3题:无重复字符的最长子串 - 这道题是中等难度,果然感受到了这种难度。思考了好久,一步步修改,才解决。answer/** * 1,拿出第一个字符,放进数组 * 2,拿出后面的一个元素 * 3,判断这个元素是否和前面的字符相同 且在数组里面是否已经存在 * 4,如果不同且不存在,就放进数组,继续看后面的元素 * 5,如果相同或已存在,不放进数组,并从第二个开始 * 6,以此类推,使用递归 * 7,准备一个对象,存放这些数组 *原创 2021-04-23 11:15:51 · 96 阅读 · 0 评论 -
每日一算:2021.4.22
大家好,我是梅巴哥er。 从今天起,我将进行算法的练习,并开设算法专栏,发布《每日一算:日期》的系列博文。 算法题目来源于leecode,按照题库顺序,每天至少练习2-3题,多则不限。如果有小伙伴对算法感兴趣,欢迎交流。第1题:两数之和描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。// 示例输原创 2021-04-22 02:10:57 · 139 阅读 · 0 评论