
算法
文章平均质量分 86
算法训练
kiddkid
既然目标是地平线,留给世界的只能是背影。
展开
-
代码随想录_单调栈
给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。单调栈.原创 2025-04-08 17:50:24 · 907 阅读 · 0 评论 -
代码随想录_动态规划
1049. 最后一块石头的重量 II有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x <= y。如果x == y,那么两块石头都会被完全粉碎;如果x!= y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回0。原创 2025-03-20 21:32:35 · 1169 阅读 · 0 评论 -
代码随想录_贪心
不能外层for遍历s, 内层if遍历g, 因为外层一直在递减, 内层不一定会减, 如果外层的饼干最大值满足不了最大的胃口, 那么整个for都满足不了, 最终返回0. 但是如果外层的胃口不能被当前的饼干满足, 更小的胃也许可以,(如果从前往后很可能后面的改为递增以后前面的成递减的了,因为改变后的数值不能大于起始数值, 如果从后往前可以用9保证>=) 遍历数字的每一位, 如果前一位>后一位, 前一位-1,后一位开始改为9。贪心, 保持sum >= 0, 使其可以递增, 用res记录sum的最大值。原创 2025-03-06 22:11:26 · 695 阅读 · 0 评论 -
代码随想录_回溯
给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按返回答案。回溯优化: 剪枝注意代码中i,就是for循环里选择的起始位置。为什么有个+1呢,因为包括起始位置,我们要是一个左闭的集合。举个例子,n = 4,k = 3, 目前已经选取的元素为0(path.size为0),n - (k - 0) + 1 即 4 - ( 3 - 0) + 1 = 2。从2开始搜索都是合理的,可以是组合[2, 3, 4]。组合位数够多的可以截断, 不再进行递归, 组合位数不足的直接剪枝。原创 2025-02-22 21:51:27 · 745 阅读 · 0 评论 -
代码随想录_二叉树
589. N 叉树的前序遍历590. N 叉树的后序遍历二叉树的迭代遍历前序遍历后序遍历中序遍历注: while(cur != null || !stack.isEmpty())要统一push, 在while里push如果只有!stack.isEmpty(), 那一开始栈空, 不会进入循环, 且由于进入栈中的不一定是要处理的元素, 可能出现pop后栈空了, 但是cur右孩子还能进栈的情况102. 二叉树的层序遍历给你二叉树的根节点 ,返回其节点值的 层序遍历 。 (即逐层地,从左到原创 2025-02-09 21:47:55 · 1204 阅读 · 0 评论 -
代码随想录_栈与队列
快指针指向原字符串要处理的字符, 慢指针指向新的字符串, 当新字符串出现相邻相等的情况, 则将两个同时排除, 回退到第一次出现该字符的位置, 继续遍历原字符串的下一个字符, 否则, 快慢指针同时往前走.给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。给定逆波兰表达式总是有效的。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。用字符串模拟栈(也可以直接用栈, 需要再转为字符串)进行"消消乐", 留下的就是最终的字符串。原创 2025-01-30 22:42:02 · 990 阅读 · 0 评论 -
代码随想录_字符串
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。kmp求next数组, 求到len + 1的位置, 求出整个串的最长公共前后缀, 原串减去公共前后缀剩下的就是最小重复子字符串。**思路: ** 步长为2k进行循环, 每次循环内对: 2k的前k个 或 不足2k的剩余所有, 进行反转。双指针, 先计算新数组的大小, 将原数组复制到新数组后, 从后往前开始替换。原创 2025-01-21 23:04:23 · 1112 阅读 · 0 评论 -
代码随想录_哈希表
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?**思路: ** 双指针, 数组有序后, left指向i + 1, right指向nums.length - 1。**思路: ** map哈希表, 四个数组两两组合, 变为两个数组的判断, 思路同1。满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]给定数组 nums = [-1, 0, 1, 2, -1, -4],答案中不可以包含重复的三元组。原创 2025-01-15 18:49:41 · 645 阅读 · 0 评论 -
代码随想录_链表
题意:删除链表中等于给定值 val 的所有节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]原创 2025-01-12 22:24:27 · 973 阅读 · 0 评论 -
代码随想录_数组
给你一个非负整数x,计算并返回x的。由于返回类型是整数,结果只保留,小数部分将被x ** 0.5OOOO。原创 2024-11-30 10:23:20 · 1059 阅读 · 0 评论 -
嵌套类问题的递归解题套路
嵌套类问题的递归解题套路原创 2024-09-17 09:03:06 · 957 阅读 · 0 评论 -
常见经典递归过程解析
时间复杂度: 最差即所有数字都不重复, 无法进行剪枝, 每一个数都分为 加入 和 不加入, 共O(2^n) 每个path长度平均为O(n), 共 O(2^n * n)测试链接 : https://leetcode.cn/problems/permutations-ii/测试链接 : https://leetcode.cn/problems/permutations/测试链接 : https://leetcode.cn/problems/subsets-ii/时间复杂度: 全排列 O(n!原创 2024-09-17 09:01:46 · 512 阅读 · 0 评论 -
二叉树高频题目-下-不含树型dp
二叉树高频题目-下-不含树型dp原创 2024-09-02 21:27:08 · 1039 阅读 · 0 评论 -
二叉树高频题目-上-不含树型dp
二叉树高频题目-上-不含树型dp详解原创 2024-08-27 21:13:47 · 1100 阅读 · 0 评论 -
数据结构设计高频题
数据结构设计高频题原创 2024-08-17 22:07:15 · 754 阅读 · 0 评论 -
链表高频题目和必备技巧
链表高频题目和必备技巧原创 2024-08-12 12:50:52 · 531 阅读 · 0 评论 -
位运算实现加减乘除
利用位运算实现加减乘除原创 2024-08-09 12:39:26 · 196 阅读 · 0 评论 -
位图
位图的原理,实现及相关题目讲解原创 2024-08-08 21:25:01 · 456 阅读 · 0 评论 -
位运算相关题目
位运算相关题目详解,附带测试链接原创 2024-08-08 21:22:53 · 722 阅读 · 0 评论 -
异或运算
异或运算的性质及相关题目原创 2024-08-07 22:04:35 · 908 阅读 · 0 评论 -
重要排序算法的总结
排序算法时间复杂度,空间复杂度,稳定性汇总原创 2024-08-07 22:01:48 · 307 阅读 · 0 评论 -
基数排序
基数排序详细代码原创 2024-08-07 21:58:03 · 1057 阅读 · 0 评论 -
堆结构常见题
堆结构常见题: 合并k个有序链表 最多线段重合问题 将数组减半的最少操作次数原创 2024-08-07 08:58:18 · 1046 阅读 · 0 评论 -
插入排序详解
插入排序详解原创 2024-03-03 23:32:03 · 375 阅读 · 0 评论