烧脑算法
文章平均质量分 70
经常学习一些算法,锻炼自己的大脑
allione
努力、奋斗、拼搏
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法题3:指针类型题目
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。指针类型有快慢指针、对向指针、同向指针(滑动窗口)、分离指针(多指针),指针其实指的是数组或者字符串的索引下标,用于标识位置。,请在数组中找出两个数,使它们的和等于目标值,并返回这两个数的下标(通常题目要求返回的是位置,或者元素本身)。同向指针:无重复字符的最长字串。相向指针:有序数组的两数之和。原创 2026-01-16 11:19:18 · 278 阅读 · 0 评论 -
算法题2:动态规划
基本步骤定义状态明确问题的状态表示(例如dp[i]或dp[i][j]的含义)。状态转移方程描述如何从子问题的解推导出当前问题的解(递推关系)。初始化边界条件设置初始状态的值(如dp[0] = 0计算顺序确定填表顺序(自底向上或自顶向下)。返回结果从状态表中提取最终解。原创 2025-09-03 21:10:51 · 506 阅读 · 0 评论 -
算法题1:前缀和解法
对数据计算前缀和过程中,可以将前缀和放入Map中,Map的key存储前缀和,value存储前缀和的个数,Map中找到sum[j]-goal的值时,value个数则代表满足条件的子数据个数。前缀和:是一种常用的预处理技术,它可以在O(1)时间内快速计算数组任意区间的和。在Java中,可以通过创建一个新的数组来存储前缀和,然后利用该数组快速获取任意区间元素的和。根据和找子数组,只需要计算出每个数组对应位置的前缀和,如果sum[j]-sum[i]==goal,那么从i到j之间的数组就是满足条件的。原创 2025-08-14 14:58:40 · 506 阅读 · 0 评论
分享