![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 76
诡白丷
“人生不会完的”
展开
-
算法(剑指 Offer 39. 数组中出现次数超过一半的数字)
算法概:这是一道简单题,但解法让我感觉很有趣,叫摩尔投票法,最早之前自己做过这道题,当时用map计数,速度很慢,这次又顺刷到这道题了,决定看看大佬的题解,优化一波。来源:LeetCode链接:剑指 Offer 39. 数组中出现次数超过一半的数字题目剑指 Offer 39. 数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例示例 1:输入: [1, 2, 3, 2, 2, 2, 5,原创 2021-03-06 16:25:10 · 76 阅读 · 0 评论 -
算法特别篇_强大的静态_注重细节的百倍优化(LeetCode_839_相似字符串组)
算法特别篇_强大的static优化概:思来想去,果然还是有必要记录一下这见证历史的时刻!学c++也有点时间了,关于代码基础细节反面,一直没有切身体会过有多大的影响。今天借这份每日一题记录一下细节上的百倍优化。来源:力扣(LeetCode)链接:LeetCode_839_相似字符串组故事开始首先题目我打开力扣看到了今天的每日一题,又是困难,又是并查集,大体思路并不难,不会并查集的hxd去隔壁博客康康算法特别篇_并查集思路(LeetCode_778_水位上升的泳池中游泳) 。嗯,那我先把题扔上来。原创 2021-01-31 14:21:17 · 179 阅读 · 1 评论 -
算法特别篇_并查集思路(LeetCode_778_水位上升的泳池中游泳)
算法特别篇_并查集思路概:近一个月leetcode出了一个月的并查集每日一题,有人惊呼:“这个月不学会并查集谁也别想走”,于是在通过找一些资料学习,并锤炼一些每日一题后,我有了自己的感悟,决定记下来。本篇主要讲述并查集抽象思维和案例(LeetCode_778_水位上升的泳池中游泳)的做法。来源:力扣(LeetCode)链接:LeetCode_778_水位上升的泳池中游泳并查集抽象思路声明:由于我在算法方面也是个菜鸡的缘故,遂一下内容可能会有不妥之处,还望大佬指正。并查集有什么用:你可以看成一张原创 2021-01-30 13:14:02 · 270 阅读 · 0 评论 -
算法(Leetcode_228_汇总区间)
算法(Leetcode_228_汇总区间)概:思索之后还是决定把今天的每日一题记录下,这是个简单难度的题,但我仍旧写了一段时间且出了一次错误,思路不算很难,实现也一般,但是有个坑。来源:力扣(LeetCode)链接:228_汇总区间题目给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下原创 2021-01-10 22:44:45 · 118 阅读 · 0 评论 -
算法(LeetCode_746_使用最小花费爬楼梯)
算法概:这波啊,好久没更博客了,今天这个每日一题有点好玩(纪念自己能想出来简单动态规划。来源:力扣(LeetCode)链接:使用最小花费爬楼梯题目原题:数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i] (索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。个人补充:讲实话 这道题感觉题目语言组织的不太好原创 2020-12-21 10:54:33 · 322 阅读 · 0 评论 -
算法(LeetCode_142_环形链表 II)
算法概:这道题是今天的每日一题,一道中等难度的题,看了看,虽然暴力统计能解决,但是不够巧妙,看了官方的题解后恍然大悟,这数学推导,我知乎内行,这波我不写自己的思路了,直接贴官方链接,看官方的极致推到。来源:力扣(LeetCode)链接:LeetCode_142_环形链表 II题目环形链表 II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则原创 2020-10-10 09:37:42 · 99 阅读 · 0 评论 -
算法(LeetCode_78_子集)
算法概:今天的每日一题是78题,很巧的是和我上次记录的博客题号连上,这道题光看题就肯定很容易出思路,无非是高中数学。但主要麻烦在实现。来源:力扣(LeetCode)链接:子集题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]思路一看题目就应该明白,排列组合,无非一层一层往上堆原创 2020-09-20 09:24:56 · 128 阅读 · 0 评论 -
算法(LeetCode_77_组合)
算法概:这题是Leetcode今天的每日一题,一道中等难度的题,题目很简单,思路也不是很难,但实现确实废了我一点劲,于是我记录一下来源:力扣(LeetCode)链接:77.组合题目给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]思路乍一看,题目就一行描述,明眼人一眼就能看出来是排列组合,但问题在于它不是要你排列组合最后有多少种原创 2020-09-08 09:47:39 · 233 阅读 · 0 评论 -
算法(LeetCode_50_Pow(x,n))
算法概:这次记录的这道题思路不难,不过会有些小坑。来源:力扣(LeetCode)链接:Pow(x,n)题目实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25思路题目很简单,要求计算一个数的n次幂,第一反应是想到了结果过原创 2020-08-24 15:14:08 · 130 阅读 · 0 评论 -
算法(LeetCode_172_阶乘后的零)
算法概:这波是鸽了很久之后,重启csdn写的一篇博客,至于原因吧,因为前些时间一方面是人懒不动弹,一方面是刷的题要么太简单不想记录,要么太难不想刷,就费劲,在我以为简单难度的题我都可以乱杀以后,这道题让我撞了个头破血流。(这波是转型c++刷题了)来源:力扣(LeetCode)链接:阶乘后的零题目给定一个整数 n,返回 n! 结果尾数中零的数量。示例示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有原创 2020-08-21 12:05:10 · 170 阅读 · 0 评论 -
算法(LeetCode_107_二叉树的层次遍历II)
算法概:这波是一个简单难度的题,至于为什么要记录下来,不是因为他的思路有多难,只是在实现上有一定的麻烦的地方。来源:力扣(LeetCode)链接:二叉树的层次遍历II题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)范例例如:给定二叉树 [3,9,20,null,null,15,7],返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]解题思路这道题要求二叉树分层遍历,把每一层的数值从左到右连成一原创 2020-06-30 10:50:29 · 138 阅读 · 0 评论 -
算法(LeetCode_70_爬楼梯)
算法概:这题在LeetCode上是一个简单难度的题,但是有一说一,我思考了有些时间才做出来,所以简单记录一下来源 : LeetCode链接:爬楼梯题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。4. 1 阶 + 1原创 2020-06-13 10:04:56 · 143 阅读 · 0 评论 -
算法(LeetCode_面试题46_把数字翻译成字符串)
算法概:一个中等难度的面试题,涉及动态规划内容,然后我就又不会了,我就又看了题解(什么时候我才能正儿八经学会自己用动态规划)题目给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。来源:力扣(LeetCode)链接:面试题46_把数字翻译成字符串示例示例 1:输入: 12258输出: 5解释: 12258有5种不原创 2020-06-09 10:59:58 · 208 阅读 · 0 评论 -
算法(LeetCode_128_最长连续序列)
算法概:今日份的每日一题,第一次在Leetcode上AC困难算法,之前一直是对困难难度带有恐惧的,不过大概也就是这道题在困难中也不算特别的难(虽然我还是看了题解才做出来),记录一手。来源:力扣(LeetCode)链接:最长连续序列题目给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。思路第一反应是要对其排序来着原创 2020-06-06 09:45:44 · 198 阅读 · 1 评论 -
算法(LeetCode_面试题29_顺时针打印矩阵)
算法概:今日份的LeetCode每日一题,这道题被判为简单难度,看题直接出思路的那种,但是,我还是交了很多很多次,错了好些个地方,主要自己写代码太不注意细节,所以记录一手。来源:力扣(LeetCode)链接:顺时针打印矩阵题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,原创 2020-06-05 17:55:03 · 182 阅读 · 0 评论 -
算法(LeetCode_152_乘积最大子数组)
算法概:又是一份用了动态规划和记忆搜索的的题,承接上一篇作为练习吧。来源:力扣(LeetCode)链接:乘积最大子数组算法思路参照上一篇博客:最低票价题目给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。原创 2020-06-04 10:26:12 · 174 阅读 · 0 评论 -
算法(LeetCode_983_最低票价)
算法概:这道题是做之前那道题之后 ,LeetCode官方题解最后推荐的练习题,说是和那个新21点有异曲同工之妙,但是做了之后我果然还是爬了,直接祖安账号登入,最终又看了题解,并打算简单记录一手。来源:力扣(LeetCode)链接:最低票价上一份动态规划题: 新21点题目在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 c原创 2020-06-03 21:50:57 · 257 阅读 · 0 评论 -
算法(LeetCode_837_新21点)
算法概:这道题也是一开始怎么想也想不到怎么做的那种(毕竟才开始刷算法 就很菜 就很无力),看了题解后反应过来这道题还是略有硬核之意,于是给它记下来。来源:力扣(LeetCode)链接:新21点题目爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数原创 2020-06-03 17:12:58 · 191 阅读 · 0 评论 -
算法(LeetCode_1662_面试题64. 求1+2+…+n)
算法概:偶尔在Leetcode上刷一手算法,今天这个每日一题对我这种菜狗来说就很有感觉,看完官方题解直接恍然大悟,就很痛快,所以记一手。题目求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。范例示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45难点及对应思路这题一看,害不就是求一手累加吗,但是他歹毒就歹毒在限制多得离谱,基础循环判断全都封了,连if都不让你用。第一反应原创 2020-06-02 17:36:39 · 536 阅读 · 0 评论 -
简单算法(Leetcode_680_回文字符串2)
简单算法概:害,就是偶尔刷一刷简单的算法 记录一下。题目给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串(正反遍历结果相同)。范例输入:“abccba” 输出:true输入 “abcbba” 输出:true输入"abcbcca" 输出:falsejava代码public class Solution { public boolean validPalindrome(String s) { //Leetcode系统执行的方法原创 2020-05-19 21:49:24 · 114 阅读 · 0 评论