当先锋百科网

首页 1 2 3 4 5 6 7


主要是对leetcode 做题后,感悟进行整理总结,方便回顾

目前处理问题,还是主要以暴力破解为主,这一方面进行改良。

领悟

路漫漫其修远兮,吾将上下而求索。 学习是伴随一生的,今天不想跑,所以才去跑。
学习的路程是枯燥的,远没有其他事情 带来的快乐要迅速,即时快乐好像成了大家心照不宣的思想。
但是当你真正的静下心来,一切好像镜中水月一般,空虚 无味,这应该不是生活的主题曲吧?
只有真正的快乐才能冲淡心中的空虚,无知者自大,我们应以谦卑的心态对待万物。
祝愿我们:待到秋来九月八,我花开后百花杀

解题思路

1. 首先明确 algorithm的核心思想就是 **数据结构** 和**逻辑运算**
2. 清楚 题目所要需要的数据 通常为return的数据(数组,int...)  
3. 思考 需要得到的数据 ==具有什么DNA特征==,又有什么办法可以进行利用
4. 如何 通过独有特性 再结合其他手段 将数据进行拿到? 例如:栈 数组等等
5. 有什么手段 可以对解题方法进行优化

leetcode 刷题归纳整理

提数题目级别链接收获ps时间
1两数之和Simplehttps://leetcode.cn/problems/two-sum/自己的办法为:暴力破解,双for循环 进行相加。Cattle:通过map的 containsKey()方法 进行判断 是否有与当前值 相减=目标值的数据
9回文数Simplehttps://leetcode.cn/problems/palindrome-number/我的思路是:简单的将数字转成String进行倒序 判断是否一致。Cattle:通过% 和* /运算 获取到数字的倒序结构 对获取到的值进行细分,比如倒序第一位 %10可以得到
13罗马数字转整数Simplehttps://leetcode.cn/problems/roman-to-integer/我的思路:将每个值转成对应数字后,判断前一个值是否小于当前值,是否为组合数字 Cattle:通过switch将字母转换成 对应数字,在进行判断是否为组合数字 switch关键字 运行时间高于if判断,而且switch只能是在常量选择分支时比ifelse效率高
14最长公共前缀Simplehttps://leetcode.cn/problems/longest-common-prefix/对数据进行处理时,空间复杂度 尽可能优化. startsWith()方法判断前缀 可以将for循环 i的值声明在外面,i的< 可以为多个
20有效的括号Simplehttps://leetcode.cn/problems/valid-parentheses/这个没有写出来,写的很复杂 多层if嵌套查询 有一种是 用replace 将正确的括号 进行替换成"",Cattle:通过Stack 栈或者ArrayDeque 后进先出的数据结构,将数据存入 与前面数据进行对比ArrayDeque 性能要高于Stack
121买卖股票的最佳时机Simplehttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock/我的思路:暴力破解,但是由于后面 数组数据太多了(1000+) 导致执行超时,Cattle:通过Math的.max和.min方法 获取买入股票最小值和卖出股票的最大值
155最小栈secondaryhttps://leetcode.cn/problems/min-stack/这个没有写出来,一直没有思路 Cattle:获取最小值是 主要考点 难点,每次push() 除了新增当前值,并新增一个最小值,保障栈顶的值为最小这个思路无敌,以一种特别巧妙的方法 将问题处理完成 体现了 有好的解题思路的重要性
极海推荐的字节算法题打印出所有元素右边第一个大于该元素的值https://www.bilibili.com/video/BV1WY4y1N7Tu/?spm_id_from=333.999.0.0&vd_source=13e97725f27f413f78f4716640e9ebde我的思路:暴力破解 获取第一个大的值,调用break 中止循环,Cattle:通过单调栈 的方式,判断大于栈顶的第一个元素 将数据存入数组,并且通过while循环 可以多次判断主要体现了单调栈的引用,保障从栈顶到栈底数据 都是递增或者递减的,严格来讲 没有使用到单调栈,只是使用到了类似的思想 呜呼😜2022/10/5 记录 加油!!
26删除有序数组中的重复项Simplehttps://leetcode.cn/problems/remove-duplicates-from-sorted-array/升序排列数组,可以根据这个特性 进行处理,还是通过的类似 暴力破解,多刷题 懂得更多的解题思路
27移除元素Simplehttps://leetcode.cn/problems/remove-element/submissions/原地算法 对这种处理逻辑的题,拥有无可睥睨的优势
58最后一个单词的长度Simplehttps://leetcode.cn/problems/length-of-last-word/某些题使用while 比for更加方便,这个判断最后一个单词的长度,却没有从后往前遍历,🤣不应该存在,警醒!!!
12整数转罗马数字secondaryhttps://leetcode.cn/problems/integer-to-roman/总体思路还算正确,硬性的逻辑校验 列出所有可能出现的 罗马数字,进行判断,更好的写法 放入数组中,进行判断 取下标值 贪心算法 Good局部最优解,追求全局最优解2022/11/7
15三数之和secondaryhttps://leetcode.cn/problems/3sum/submissions/380951014/一直没有写出来,没想到使用 双指针方法,进行操作非常方便,细节在于 三元组去重,以及指针的移动双指针法厉害,又学到了
18四数之和secondaryhttps://leetcode.cn/problems/4sum/description/类似三数之和,也是通过双指针法进行处理,数据去重和 缩小时间复杂度 可以进行深入探究,时间上更快的,除了所有算法的不同 还有对问题的过滤,例如:判断空 各种的逻辑校验2022/11/11

疑难问题