每天刷刷题
记录算法小白的刷题过程,欢迎大家一起加入。。。。
前行follow
learning sharing and discussing.
展开
-
题目地址(72. 编辑距离)
时间复杂度 :O(mn),其中 m 为 word1 的长度,n 为 word2 的长度。空间复杂度 :O(mn),我们需要大小为 O(mn) 的 D 数组来记录状态值。令 n 为数组长度。原创 2022-09-13 19:48:24 · 212 阅读 · 0 评论 -
题目地址(97. 交错字符串)
给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。原创 2022-09-13 17:28:43 · 271 阅读 · 0 评论 -
题目地址(279. 完全平方数)
给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。原创 2022-09-13 16:47:01 · 134 阅读 · 0 评论 -
题目地址(17.24. 最大子矩阵)
给定一个正整数、负整数和 0 组成的 N × M 矩阵,编写代码找出元素总和最大的子矩阵。返回一个数组 [r1, c1, r2, c2],其中 r1, c1 分别代表子矩阵左上角的行号和列号,r2, c2 分别代表右下角的行号和列号。若有多个满足条件的子矩阵,返回任意一个均可。原创 2022-09-13 16:32:24 · 54 阅读 · 0 评论 -
题目地址(2179. 统计数组中好三元组数目)
给你两个下标从 0 开始且长度为 n 的整数数组 nums1 和 nums2 ,两者都是 [0, 1, ..., n - 1] 的 排列 。好三元组 指的是 3 个 互不相同 的值,且它们在数组 nums1 和 nums2 中出现顺序保持一致。换句话说,如果我们将 pos1v 记为值 v 在 nums1 中出现的位置,pos2v 为值 v 在 nums2 中的位置,那么一个好三元组定义为 0原创 2022-09-08 10:48:19 · 64 阅读 · 0 评论 -
题目地址(611. 有效三角形的个数)
给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。原创 2022-09-06 10:14:06 · 48 阅读 · 0 评论 -
题目地址(874. 模拟行走机器人)
机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令 commands :-2 :向左转 90 度-1 :向右转 90 度1原创 2022-09-03 11:24:28 · 111 阅读 · 0 评论 -
题目地址(2115. 从给定原材料中找到所有可以做出的菜)
你有 n 道不同菜的信息。给你一个字符串数组 recipes 和一个二维字符串数组 ingredients 。第 i 道菜的名字为 recipes[i] ,如果你有它 所有 的原材料 ingredients[i] ,那么你可以 做出 这道菜。一道菜的原材料可能是 另一道 菜,也就是说 ingredients[i] 可能包含 recipes 中另一个字符串。同时给你一个字符串数组 supplies ,它包含你初始时拥有的所有原材料,每一种原材料你都有无限多。请你返回你可以做出的所有菜。你可以以 任意顺原创 2022-09-02 10:20:08 · 62 阅读 · 0 评论 -
题目地址(207. 课程表)
你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。...原创 2022-09-01 11:00:22 · 54 阅读 · 0 评论 -
题目地址(930. 和相同的二元子数组)
给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。子数组 是数组的一段连续部分。原创 2022-08-25 10:43:21 · 56 阅读 · 0 评论 -
题目地址(904. 水果成篮)
你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:你只有 两个 篮子,并且每个篮子只能装 单一类型 的水果。每个篮子能够装的水果总量没有限制。你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘原创 2022-08-24 11:18:57 · 270 阅读 · 0 评论 -
题目地址(438. 找到字符串中所有字母异位词)
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。原创 2022-08-24 10:52:39 · 51 阅读 · 0 评论 -
【双指针】题目地址(76. 最小覆盖子串)
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""原创 2022-08-24 09:47:00 · 50 阅读 · 0 评论 -
题目地址(Triangle Triplets)
【代码】题目地址(Triangle Triplets)原创 2022-08-23 12:19:43 · 47 阅读 · 0 评论 -
题目地址(1371. 每个元音包含偶数次的最长子字符串)
给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次。原创 2022-08-23 10:39:39 · 54 阅读 · 0 评论 -
【双指针】题目地址(287. 寻找重复数)
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。原创 2022-08-20 10:09:41 · 92 阅读 · 0 评论 -
题目地址(697. 数组的度)
给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。原创 2022-08-18 11:29:09 · 118 阅读 · 0 评论 -
题目地址(706. 设计哈希映射)
不使用任何内建的哈希表库设计一个哈希映射(HashMap)。实现 MyHashMap 类:MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中,则更新其对应的值 value 。int get(int key) 返回特定的 key 所映射的 value ;如果映射中不包含 key 的映射,返回 -1 。void remove(key) 如果映射中存在 ke原创 2022-08-18 10:04:14 · 58 阅读 · 0 评论 -
题目地址(705. 设计哈希集合)
不使用任何内建的哈希表库设计一个哈希集合(HashSet)。实现 MyHashSet 类:void add(key) 向哈希集合中插入值 key 。bool contains(key) 返回哈希集合中是否存在这个值 key 。void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。...原创 2022-08-17 11:38:56 · 42 阅读 · 0 评论 -
KMP算法小结
令待匹配字符串长度为nnn,模式串长度为mmm因为使用模式串前缀和后缀信息,能够在O(m+n)O(m+n)O(m+n)的时间复杂度内,完成字符串的匹配next数组考虑的是除当前字符外的最长相同前缀后缀;因此,可以将最长相同前缀后缀右移一位,初值赋值为-1如果SiS_iSi和PjP_jPj没有匹配成功,将模式串的第k+1k+1k+1位置对齐到SiS_iSi,即将模式串移动j−next[j]j-next[j]j−next[j]位next[j] = k 代表p[j] 之前的模式串子串中,有长度为k 的相同前原创 2022-06-23 16:27:24 · 60 阅读 · 0 评论 -
题目地址(39. 组合总和)
https://leetcode.cn/problems/combination-sum/前置知识公司暂无思路Reference:https://leetcode.cn/problems/combination-sum/solution/hui-su-suan-fa-jian-zhi-python-dai-ma-java-dai-m-2/Python3 Code:剪枝后:将candidates排序,对于target...原创 2022-06-19 15:28:02 · 60 阅读 · 0 评论 -
详解x&(-x)以及x&(x-1)
详解x&(-x)以及x&(x-1)&运算符意义:按位与运算,只有两个位都为1时,结果才为1一般用途:清零一个数与0相与,这个数就可以变成0取一个数X的指定位另一个标记数Y的指定位为1,然后X&Y解析x&(-x)一个数的负数,在计算机中通过补码来表示,即将x取反然后+1x & (-x) = x & (~x + 1)那么进一步思考x & (~x + 1)的作用是什么呢?假设x的最低位的1的位置是POS,原创 2022-05-19 14:12:32 · 834 阅读 · 0 评论 -
链表刷题记录
链表刷题记录一刷:Day121. 合并两个有序链表82. 删除排序链表中的重复元素 II83. 删除排序链表中的重复元素86. 分隔链表92. 反转链表 II138. 复制带随机指针的链表Day27. 141. 环形链表8. 142. 环形链表 II9. 143. 重排链表`10. 148. 排序链表11. 206. 反转链表12. 234. 回文链表二刷:Day3所有题,简单题全过,剩下7道中等题Day4148. 排序链表142. 环形链表 II92. 反转原创 2022-01-12 12:20:30 · 87 阅读 · 0 评论 -
刷题目录汇总
刷题目录链表专题21. 合并两个有序链表删除排序链表中的重复元素 II删除排序链表中的重复元素分隔链表反转链表 II复制带随机指针的链表环形链表环形链表 II重排链表排序链表反转链表回文链表树专题堆专题二分专题动态规划搜索二叉树的遍历回溯...原创 2022-01-04 16:21:26 · 227 阅读 · 0 评论 -
走走停停——刷题方法
刷题方法思考刷题的目的为了找工作,面试需要,手撕代码为了提升自己的算法水平,养成更好的编程思维希望刷题带来的结果呢?面对各种题,有自己的一个解题思路能够写出正常运行的代码如何做到以上两点呢?针对于解题思路来说,就好比我们在做数学题。回想我们学数学的过程,一般都是按照某个章节介绍某种数学概念、定理等,然后做该数学定理的简单题目(例子),然后就去套定理、公式做很多题目,就可以慢慢理解这个定义适合哪些题目(中学思维),慢慢就理解定理、公式的使用范围。然后学会很多个数学知识点后,就会原创 2021-12-28 17:22:11 · 462 阅读 · 0 评论 -
题目地址(66. 加一)
题目地址(66. 加一)https://leetcode-cn.com/problems/plus-one/题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3原创 2021-12-27 14:41:45 · 46 阅读 · 0 评论 -
题目地址(53. 最大子数组和)
题目地址(53. 最大子数组和)https://leetcode-cn.com/problems/maximum-subarray/题目描述给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。 示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1原创 2021-12-23 16:19:15 · 290 阅读 · 0 评论 -
题目地址(26. 删除有序数组中的重复项)
题目地址(26. 删除有序数组中的重复项)https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/题目描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」原创 2021-12-22 18:58:24 · 68 阅读 · 0 评论