leetcode 87 扰乱字符串

题目意思就是说判断s1能否经过题目所说的算法得到s2。 题目中的算法处理的位置为随机,所以复现算法基本无法得到s2 那么只能搜索了。 分析: 初始时:如果s1==s2,直接返回true。 对于一个字符串s1,在随机位置分割s1,那么我们只能遍历s1,假设当前位置为分割处,然后进行后续操作,来判断是否 ... »

LeetCode 3. Longest Substring Without Repeating Characters

题目描述 题目链接 思路 假设必须以i位置字符结尾的字符串最大不重复字串的长度是x,那么所有位置x值中最大的值就是答案。 i位置的x的值取决于两个因素。 第一个因素是i-1向左边能扩到最左位置(即:i-1位置上的x值)。 第二个因素是i位置的值上一次出现的位置。 这两个因素取最大值即可算出i位置的x ... »

「Leetcode-算法_MId1006」从单栈到双栈

Mid 1006 笨阶乘 栈/后缀 运算优化 + 栈 思路描述 每四个数一组 这四个数中前三个会进行乘、除 然后与最后一个相加 Stack 入前三个之和 与 最后一个数 以 4 举例 运算式 4 * 3 / 2 + 1 --> (4 * 3 / 2) + 1 以 temp 代表括号内元素运算值 pl ... »

LeetCode 134. Gas Station

题目描述 题目链接 思路 暴力解法 O(N^2) 我们可以通过生成辅助数组来验证良好出发点 int[]h 这个数组的长度和cost数组长度一致,且这个数组的每个元素的生成逻辑是: h[i]=gas[i]-cost[i]; h(i) 往后累加,并回到i位置,不出现负数,就是良好出发点 ,这个i位置就是 ... »

LeetCode 239. Sliding Window Maximum

题目描述 题目链接 思路 数组为num, 滑动窗口大小是k,首先两个极端情况: 如果k=1,则直接返回原数组即可(滑动窗口大小为1,那么每个窗口的最小值/最大值就是其本身) 如果k == num.length, 那么返回一个数组大小为1的数组,这个数组里面的唯一的数就是整个数组的最大值 然后讨论普遍 ... »

LeetCode 87. Scramble String

题目描述 题目链接 思路 初步过滤 如果两个字符串的字符种类和数量不太一样,那么肯定不互为扰乱字符串 暴力递归方式 f(str1,str2, L1, L2, k) 表示: str1 从L1开始往后推k个长度字符,和str2从L2往后推k个长度字符,是否互为扰乱字符串 那么主函数调用: f(str1, ... »

LeetCode 629. K Inverse Pairs Array

LeetCode 629. K Inverse Pairs Array 题目描述 题目链接 暴力解 定义dp[i][j]表示:1.....i范围内,形成j个逆序对有多少种方式,那么i和j的范围分别是: i: [1...n] j: [0...k] 其中我们把dp[0][...]位置弃而不用,因为没有意 ... »

无重叠区间

题目: 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 题解:贪心区间问题。先按边界排序,再比较后一个区间的起点是否前一个区间的终点重叠。代码如下: Java版 ... »

LeetCode 169. Majority Element

LeetCode 169. Majority Element 题目描述 题目链接 思路1 Hash表 很直接,代码略 由于题目的follow-up要求空间复杂度O(1),所以,这个方法其实并不是最优解。 思路2 一次删除两个不同的数 一次删除两个不同的数,如果存在majority element,那 ... »

Windows中VS code无法查看C++ STL容器的值 - 解决方法

Windows中VS code debug时无法查看C++ STL容器内容 首先,你很可能用的是x64版本的Windows。 我发现一个有效的解决方法,但在x64版本的Windows上安装MinGW时,虽然官方推荐MinGW版本的是x86_64的,但实践后发现如果选择安装 x86_64的, 很可能D ... »

【哈希表】leetcode454——四数相加II

编号454:四数相加II 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。 为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有 ... »

算法刷题及总结_数组篇拓展

算法刷题及总结_数组篇拓展 1.剑指 Offer 03. 数组中重复的数字【难度指数:★☆☆】 题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 ... »

一个方便 LeetCode 复习的脚本

这是一个简易的 LeetCode 自动统计程序, 可自动统计最近提交通过的题目, 并以 Markdown 的形式展示相关的数据。 采用 GitHub Actions 自动化运行程序,无需部署到服务器或本机持续运行了~ ... »

【数组】leetcode——移除元素

编号:27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并**「原地」**修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 ... »

刷题导论

刷题导论 目前双非研究生一枚,之前跟着微信公众号【代码随想录】进行的刷题,现在打算按照刷题顺序二刷一边,加深一下印象,如果有理解不对的地方希望各位看官大佬指出:point_left:,哈哈:laughing: 下面是刷题顺序 数组 链表 哈希表法 字符串 双指针法 栈与队列 二叉树 回溯 贪心算法 ... »

LeetCode刷题笔记

参考链接:图解算法数据结构 代码和思路主要来源: 作者:Krahets 链接:https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/ 来源:力扣(LeetCode) 动态规划 剑指Offer 58 - Ⅱ.左旋转字符串 四种解 ... »

203.移除链表元素

题目描述 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 注意点 1、删除点在开头; 2、删除点在结尾; 3、连续删除两个位置; 4、需delete手动释放内存; 头结点命中处理 1、头结点命中 ... »

n个骰子的点数

这题出自LeetCode,题目如下: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 示例 1: 输入: 1 输出: [0.16667,0 ... »

常见的位操作及其应用

与、或、异或、取反或者移位运算这几种基本的位操作想必诸位读者并不陌生,如果我们能在某些合适场景下使用位运算,有些时候可以大大提高算法的效率。但由于本身位运算太过灵活,甚至某些技巧比较苦涩难懂,因而,本篇文章主要介绍几种常见的或者有趣的位操作,并且给出一些用到这些技巧的算法题目,便于读者理解与掌握。 ... »